Mi piacerebbe ruotare una Texture in XNA. So che posso ruotarlo quando viene disegnato, ma vorrei che la variabile Texture2D fosse la trama ruotata. C'è un modo per fare questo?XNA Rotate Texture 2D
6
A
risposta
5
Usa RenderTarget, disegna la tua texture ruotata nel RenderTarget, prendi la texture e salvala.
1
Un modo sarebbe passare una matrice di rotazione allo shader e moltiplicare i tuoi texcoords prima di chiamare il campionatore di trama.
Non sono sicuro che XNA/DirectX abbia lo stesso concetto della matrice di texture di OpenGL.
4
È necessario fornire un nuovo ombreggiatore che gestisca la rotazione delle corde di trama. Poiché il codice HLSL di basiceffect è pubblico, dovrebbe essere abbastanza semplice aggiungere questo comportamento.
passando un parametro angolazione allo shader, la trasformazione dovrebbe essere:
newU = U*cos(alfa) - V*sin(alfa);
newV = U*sin(alfa) + V*cos(alfa);
Avete un esempio? – matrixugly