[英]opengl texture cube c++
你好,我創建一個多維數據集,並希望在一側的紋理。
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);
但我看不到紋理,我做錯了什么? 謝謝。
您尚未提供紋理坐標。 您需要在相應的glVertex
調用之前發出一次對glTexCoord
(最常用的2f
變體)的調用,以指示矢量映射到的紋理的一部分。
否則,OpenGL不知道應如何將紋理粘貼到多邊形上。
首先,這似乎不是一個立方體,而只是一個四邊形 ,一個立方體由6個不同的四邊形組成 ..(您可以使用GL_QUADS
而不是GL_POLYGON
。
第二件事是您正在加載紋理,但未將其映射到頂點。 您需要提供坐標以映射紋理應如何適合四邊形。 您可以通過使用
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
該示例取自NEHE OpenGL指南,我真的建議您看一下,因為它的解釋很清楚: http : //nehe.gamedev.net
查看關於紋理映射的教程6: http : //nehe.gamedev.net/data/lessons/lesson.asp?lesson=06
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.