簡體   English   中英

opengl紋理立方體c ++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM