2011-09-19 114 views
6

我想在XNA中旋轉紋理。我知道我可以在繪製時旋轉它,但我希望Texture2D變量是旋轉的紋理。有沒有辦法做到這一點?XNA旋轉紋理2D

回答

5

使用RenderTarget,將您的紋理旋轉到RenderTarget中,取紋理並保存。

+0

你有一個例子嗎? – matrixugly

1

一種方法是在調用紋理採樣器之前將旋轉矩陣傳遞給着色器,並將texcoords乘以該矩陣。

我不確定XNA/DirectX是否與OpenGL的紋理矩陣具有相同的概念。

4

您應該提供一個管理紋理座標旋轉的新着色器。由於basiceffect的HLSL代碼是公開的,因此添加此行爲應該很容易。

Basic Effect HLSL code

傳遞角參數着色器,變換應該是:

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