如何在 OpenGL ARB 着色器中翻转 texcoord 的 Y 轴?

How to flip Y axis of the texcoord in OpenGL ARB shader?

用下面的shader可以正常显示,但是图像倒过来了

!!ARBfp1.0
TEX result.color, fragment.texcoord, texture[0], RECT;
END

所以我正在尝试翻转 texcoord 的 Y 轴,例如:

!!ARBfp1.0
TEMP uv;
MOV uv, fragment.texcoord;
ADD uv.y, 1.0, -fragment.texcoord.y;
TEX result.color, uv, texture[0], RECT;
END

没用。我对 OpenGL ARB 汇编语言不熟悉。

我找到了 TEX 指令的参考 here,它说

Takes the first three components of the source vector to sample from the specified texture target on the specified texture image unit.

我怀疑 fragment.texcoord 与 GLSL 中的 texcoord 相同,其中采样坐标仅使用两个分量。

您正在使用 RECT 作为纹理目标(与 2D 相对),因此您的 Y 纹理坐标 而不是 范围 [0.0. .1.0),但来自 [0.0..texture 高度)。 所以,你计算的 ADD uv.y, 1.0, -fragment.texcoord.y 是错误的。