Próbuję obrócić teksturę w module cieniującym fragmentów, zamiast korzystać z funkcji transformacji wierzchołków i macierzy.Obracanie tekstury w module Fragment Shader w języku GLSL ES
Obrót ma oś przegubu pośrodku.
Algorytm działa poprawnie podczas renderowania w kwadracie o kształcie kwadratu, ale gdy kwadrat ma kształt prostokątny, wynik renderowania zostaje pomieszany. Ktoś może zauważyć problem?
Dziękuję
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);
}
szukam dla niego zbyt! Czy problem został rozwiązany? – Samsy
Zrobiłem to, budując matrycę do obracania poza shaderem, http://stackoverflow.com/questions/31417365/how-to-rotate-a-texture-in-a-shader-android, możesz również znaleźć to pomocne przy ustalaniu elementów matrycy, http://www.songho.ca/opengl/gl_projectionmatrix.html – HPP