我在顶点着色器中重复纹理(用于存储,而不是在现场重复)。这是正确的方法吗?我似乎在某些地方失去了精确度。
varying vec2 texcoordC;
texcoordC = gl_MultiTexCoord0.xy;
texcoordC *= 10.0;
texcoordC.x = mod(texcoordC.x, 1.0);
texcoordC.y = mod(texcoordC.y, 1.0);
添加:然后我将 texcoord 保存(存储)为颜色,将其打印到纹理中,然后再次使用该纹理。当我从纹理中检索颜色时,我找到了 texcoords 并使用它们在后期处理中应用纹理。我想要这样是有原因的,我不会进入。我知道 texcoords 会受到颜色精度的限制,这没关系,因为我的纹理的宽度和高度为 256。
我知道通常我会将带有 glTexcoord2f 的 texcoords 设置为高于 1.0 以重复(并使用 GL_REPEAT),但我使用的是我懒得编辑的模型加载器,因为我认为这不是必要的/不是最简单的方法。