【问题标题】:XNA Rotate Texture 2DXNA 旋转纹理 2D
【发布时间】:2013-05-13 20:22:00
【问题描述】:

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

【问题讨论】:

    标签: c# xna


    【解决方案1】:

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

    【讨论】:

    • 你有例子吗?
    【解决方案2】:

    您应该提供一个管理纹理坐标旋转的新着色器。由于基本效果的 HLSL 代码是公开的,因此添加此行为应该很容易。

    Basic Effect HLSL code

    将角度参数传递给着色器,变换应该是:

     newU = U*cos(alfa) - V*sin(alfa);
     newV = U*sin(alfa) + V*cos(alfa);
    

    【讨论】:

      【解决方案3】:

      一种方法是将旋转矩阵传递给着色器,然后在调用纹理采样器之前将 texcoords 乘以该值。

      我不确定 XNA/DirectX 是否与 OpenGL 的纹理矩阵有相同的概念。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多