你好我创建一个立方体,并希望在一侧有纹理。
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filterMode);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filterMode);
glBegin(GL_POLYGON); //Vorderseite
glColor4f(1.0f,0.0f,0.0f,1.0f); //ROT
glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
glEnd();
glDisable(GL_TEXTURE_2D);
但我看不出我的纹理,我错了什么? 感谢。
答案 0 :(得分:4)
您尚未提供纹理坐标。您需要向glTexCoord
(最常用的2f
变体)发出一个调用,指示矢量映射到的纹理的一部分,之前 glVertex
致电。
否则,OpenGL不知道如何将纹理粘贴到多边形上。
答案 1 :(得分:2)
首先,这似乎不是一个多维数据集而只是一个 quad ,一个多维数据集是由6个不同的四元组 ...(你可以使用{{1而不是GL_QUADS
。
第二件事是您正在加载纹理但不将其映射到顶点。您需要提供坐标以映射纹理应如何适合四边形。您可以使用
来完成GL_POLYGON
示例来自 NEHE OpenGL指南,我建议您先仔细阅读,因为它的解释很清楚:http://nehe.gamedev.net
查看关于纹理映射的教程6:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06