gpt4 book ai didi

rotation - 在 GLSL ES 中的片段着色器上旋转纹理

转载 作者:行者123 更新时间:2023-12-04 08:48:33 25 4
gpt4 key购买 nike

我正在尝试在片段着色器中旋转纹理,而不是使用顶点着色器和矩阵变换。

旋转以枢轴为中心。

该算法在方形四边形中渲染时效果很好,但当四边形为矩形时,渲染结果会变得困惑。
任何人都可以发现问题吗?

谢谢

    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);
}

最佳答案

问题中提供的以下代码行:

coord = vec2(coord.x - (0.5 * Resolution.x / Resolution.y), coord.y - 0.5) * mat2(cos_factor, sin_factor, -sin_factor, cos_factor);

不太对。
有一些括号错误。

正确的版本是:
coord = vec2((coord.x - 0.5) * (Resolution.x / Resolution.y), coord.y - 0.5) * mat2(cos_factor, sin_factor, -sin_factor, cos_factor);

关于rotation - 在 GLSL ES 中的片段着色器上旋转纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28074977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com