XNA Rotate Texture 2D

前端 未结 3 710
灰色年华
灰色年华 2021-01-18 13:44

I\'d like to rotate a Texture in XNA. I know I can rotate it when it is drawn, but I would like the Texture2D variable to be the rotated texture. Is there any way to do this

相关标签:
3条回答
  • 2021-01-18 14:00

    You should provide a new shader that manage texture coords rotation. As the HLSL code of the basiceffect is public, it should be pretty easy to add this behaviour.

    Basic Effect HLSL code

    Passing an angle parameter to the shader, the transform should be:

     newU = U*cos(alfa) - V*sin(alfa);
     newV = U*sin(alfa) + V*cos(alfa);
    
    0 讨论(0)
  • 2021-01-18 14:12

    Use RenderTarget, draw your texture rotated into the RenderTarget, take the texture and save it.

    0 讨论(0)
  • 2021-01-18 14:12

    One way would be to pass a rotation matrix to your shader and multiply your texcoords by that before calling the texture sampler.

    I'm not sure if XNA/DirectX has the same concept as OpenGL's texture matrix.

    0 讨论(0)
提交回复
热议问题