0
我跑this example,为什么GL_CLAMP在这里很重要?
但改变:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
到:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
和我在顶部和右侧有一个稍微不同的图像。
但作为从代码中看出:
glBegin(GL_QUADS);
//lower left
glTexCoord2f(0, 0);
glVertex2f(-1.0, -1.0);
//upper left
glTexCoord2f(0, 1.0);
glVertex2f(-1.0, 1.0);
//upper right
glTexCoord2f(1.0, 1.0);
glVertex2f(1.0, 1.0);
//lower right_
glTexCoord2f(1.0, 0);
glVertex2f(1.0, -1.0);
glEnd();
纹理都不会出门的范围,为什么GL_CLAMP事项?
你能解释一下这个'0.0625' ='1.0/16'的魔法值来自哪里吗? – 2012-07-16 21:36:10
@StevenLu我刚刚发现这个矢量被添加到纹理坐标,因此它可以计数超过1.0,其中'GL_CLAMP'进场。要了解着色器中实际做了什么,最好问一下[此代码的作者](http://stackoverflow.com/a/3585515/344480)。 – Matthias 2012-07-17 09:37:15