我正在使用 OpenGL 3.3 GLSL 1.5 兼容性。我的顶点数据遇到了一个奇怪的问题。我正在尝试将索引值传递给片段着色器,但该值似乎会根据我的相机位置而变化。
这应该很简单:我通过顶点着色器将 GLfloat 传递给片段着色器。然后我将此值转换为无符号整数。该值大部分时间都是正确的,除了片段的边缘。无论我做什么,都会出现同样的失真。为什么我的相机位置会改变这个值?即使在下面这个荒谬的例子中,tI 也异常地等于 1.0 以外的值;
uint i;
if (tI == 1.0) i = 1;
else i = 0;
vec4 color = texture2D(tex[i], t) ;
如果我发送整数数据而不是浮点数据,我会遇到完全相同的问题。我输入的顶点数据似乎并不重要。我在数据中输入的值在整个片段中不一致。失真甚至每次看起来都完全相同。