我想在XNA中旋转纹理。我知道我可以在绘制时旋转它,但我希望Texture2D变量是旋转纹理。有没有办法做到这一点?
答案 0 :(得分:5)
使用RenderTarget,将旋转的纹理绘制到RenderTarget中,获取纹理并保存。
答案 1 :(得分:5)
您应该提供一个管理纹理坐标旋转的新着色器。由于basiceffect的HLSL代码是公共的,因此添加此行为应该非常容易。
将角度参数传递给着色器,转换应为:
newU = U*cos(alfa) - V*sin(alfa);
newV = U*sin(alfa) + V*cos(alfa);
答案 2 :(得分:1)
一种方法是将旋转矩阵传递到着色器,并在调用纹理采样器之前将texcoords乘以它。
我不确定XNA / DirectX是否与OpenGL的纹理矩阵具有相同的概念。