XNA 旋转纹理2D

6

我想在XNA中旋转纹理。我知道可以在绘制时旋转它,但我希望Texture2D变量是旋转后的纹理。有没有办法做到这一点?

3个回答

5
你应该提供一个新的着色器来管理纹理坐标旋转。由于basiceffect的HLSL代码是公开的,因此添加这个行为应该非常容易。 Basic Effect HLSL code 将角度参数传递给着色器,变换应该是:
 newU = U*cos(alfa) - V*sin(alfa);
 newV = U*sin(alfa) + V*cos(alfa);

5
使用RenderTarget,将您的纹理旋转到RenderTarget中,取出纹理并保存。

你有例子吗? - C. Tewalt

1
一种方式是将旋转矩阵传递给您的着色器,并在调用纹理采样器之前通过它乘以纹理坐标。 我不确定XNA / DirectX是否具有与OpenGL的纹理矩阵相同的概念。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接