XNA Rotate Texture 2D - PullRequest
       3

XNA Rotate Texture 2D

6 голосов
/ 19 сентября 2011

Я бы хотел повернуть текстуру в XNA.Я знаю, что могу вращать его, когда он рисуется, но я бы хотел, чтобы переменная Texture2D была повернутой текстурой.Есть ли способ сделать это?

Ответы [ 3 ]

5 голосов
/ 19 сентября 2011

Используйте RenderTarget, нарисуйте свою текстуру повернутой в RenderTarget, возьмите текстуру и сохраните ее.

5 голосов
/ 19 сентября 2011

Вы должны предоставить новый шейдер, который управляет вращением текстурных координат. Поскольку HLSL-код базового эффекта общедоступен, добавить такое поведение должно быть довольно легко.

Код HLSL базового эффекта

Передавая параметр угла в шейдер, преобразование должно быть:

 newU = U*cos(alfa) - V*sin(alfa);
 newV = U*sin(alfa) + V*cos(alfa);
1 голос
/ 19 сентября 2011

Один из способов - передать матрицу вращения в ваш шейдер и умножить на нее текскорды перед вызовом сэмплера текстуры.

Я не уверен, что XNA / DirectX имеет ту же концепцию, что и матрица текстур OpenGL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...