Я хочу визуализировать 2D-изображения. Для этого я масштабирую и трансформирую все в положение, при котором центр находится там, где я хочу. Мне нужно повернуть 2D-координаты вокруг центра, но когда я это делаю, это как если бы была задействована некоторая координата x, поскольку изображения странным образом сглаживаются. Вот код:
attribute vec4 vPosition;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
uniform vec2 scale;
uniform vec2 trans;
uniform float move_down;
void main(){
gl_Position = vPosition;
gl_Position.x *= scale.x;
gl_Position.y *= scale.y;
gl_Position.x += trans.x;
gl_Position.y += trans.y - move_down;
gl_Position.x *= 2.0;
gl_Position.y *= 2.0;
gl_Position.x -= 1.0;
gl_Position.y -= 1.0;
gl_Position.x *= 0.2; //For visual testing only
gl_Position.y *= 0.2; //Same
gl_Position.x = cos(1.0)*gl_Position.x - sin(1.0)*gl_Position.y;
gl_Position.y = sin(1.0)*gl_Position.x + cos(1.0)*gl_Position.y;
v_texCoord = a_texCoord;
}
Вот изображение без линий поворота ...
А вот изображение с поворотом на 1,0 радиан ...
Очевидно, есть проблема, так как это должно быть простое 2D вращение. Если я сделаю 90 градусов, изображение полностью исчезнет.
Сделано с OpenGL-ES 2 для Android.
Я ценю любые ответы на этот вопрос.
Редактировать: Я тоже пробовал это с той же проблемой:
mat4 RotationMatrix = mat4( cos(1.0), -sin(1.0), 0.0, 0.0,
sin(1.0), cos(1.0), 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0 );
gl_Position *= RotationMatrix;