2011-09-19 8 views
6

XNAでテクスチャを回転させたいと思います。描画されたときに回転させることができますが、Texture2D変数を回転したテクスチャにしたいと思います。これを行う方法はありますか?XNA Rotate Texture 2D

答えて

5

RenderTargetを使用して、RenderTargetに回転したテクスチャを描画し、テクスチャを取り込んで保存します。

+0

あなたは例を持っていますか? – matrixugly

1

テクスチャサンプラーを呼び出す前に、回転行列をシェーダーに渡してテクスチャーを乗算する方法もあります。

XNA/DirectXにOpenGLのテクスチャマトリックスと同じ概念があるかどうかはわかりません。

4

テクスチャ座標の回転を管理する新しいシェーダを用意する必要があります。 basiceffectのHLSLコードは公開されているので、この動作を追加するのはかなり簡単です。シェーダに角度パラメータを渡す

Basic Effect HLSL code

、変換は次のようになります。

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