Я пытаюсь повернуть текстуру в фрагментном шейдере, вместо использования шейдерных шейдеров и матричных преобразований.Вращение текстуры на фрагментном шейдере в GLSL ES
Вращение имеет стержень в центре.
Алгоритм отлично работает при рендеринге в квадрате с квадратной формой, но когда квадратик имеет прямоугольную форму, результат рендеринга становится беспорядочным. Любой может решить проблему?
Спасибо
varying vec2 v_texcoord;
uniform sampler2D u_texture;
uniform float u_angle;
void main()
{
vec2 coord = v_texcoord;
float sin_factor = sin(u_angle);
float cos_factor = cos(u_angle);
coord = (coord - 0.5) * mat2(cos_factor, sin_factor, -sin_factor, cos_factor);
coord += 0.5;
gl_FragColor = texture2D(u_texture, coord);
}
Я ищу его тоже! Решено ли? – Samsy
Я сделал это, построив матрицу для вращения за пределами шейдера, http://stackoverflow.com/questions/31417365/how-to-rotate-a-texture-in-a-shader-android, вы также можете найти это полезно для выяснения компонентов матрицы, http://www.songho.ca/opengl/gl_projectionmatrix.html – HPP