我想在片元着色器中旋转纹理,而不是使用顶点着色器和矩阵变换。
旋转的中心点位于中心位置。
当渲染一个宽高比不为1的四边形时,该算法可以正确工作,但渲染结果会出现问题。有人能找出问题吗?
谢谢。
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);
}