2011-09-19 5 views
6

XNA에서 텍스처를 회전하고 싶습니다. 그릴 때 회전 할 수 있지만 Texture2D 변수를 회전 된 텍스처로 사용하고 싶습니다. 이 일을 할 수있는 방법이 있습니까?XNA Rotate Texture 2D

답변

5

RenderTarget을 사용하여 RenderTarget으로 회전 된 텍스처를 그린 다음 텍스처를 가져 와서 저장합니다.

+0

당신은 예를 들어이 있습니까 :

Basic Effect HLSL code

(가)되어야한다 변환, 셰이더 각도 매개 변수를 전달? – matrixugly

1

한 가지 방법은 텍스처 샘플러를 호출하기 전에 쉐이더에 회전 행렬을 전달하고 텍스쳐 코드를 곱하는 것입니다.

XNA/DirectX에 OpenGL의 텍스처 매트릭스와 동일한 개념이 있는지 확실하지 않습니다.

4

텍스처 코디네이트 로테이션을 관리하는 새로운 셰이더를 제공해야합니다. basiceffect의 HLSL 코드는 공개되어 있으므로이 동작을 추가하는 것이 매우 쉽습니다.

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