繁体   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