Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opengl纹理立方体c++;_C++_Opengl_Cube - Fatal编程技术网

C++ opengl纹理立方体c++;

C++ opengl纹理立方体c++;,c++,opengl,cube,C++,Opengl,Cube,您好,我创建了一个立方体,希望在一边有一个纹理 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); glBe

您好,我创建了一个立方体,希望在一边有一个纹理

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不知道如何将纹理粘贴到多边形上。

您没有提供纹理坐标。在相应的
glVertex
调用之前,您需要发出一个对
glTexCoord
(最常用的
2f
变量)的调用,该调用指示向量映射到的纹理的一部分


否则,OpenGL不知道如何将纹理粘贴到多边形上。

首先,这看起来不是一个立方体,而是一个四边形,一个立方体由6个不同的四边形组成。。(您可以使用
GL_四边形
,而不是
GL_多边形

第二件事是你正在加载纹理,但没有将其映射到顶点。你需要提供坐标来映射纹理应该如何适应四边形。你可以使用

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);
该示例摘自《NEHEOpenGL指南》,我真的建议您看一看,因为它解释得很好:


检查教程6中关于纹理贴图的内容:

首先,这看起来不是一个立方体,而是一个四边形,一个立方体由6个不同的四边形组成。(
GL_四边形
可以代替
GL_多边形

第二件事是你正在加载纹理,但没有将其映射到顶点。你需要提供坐标来映射纹理应该如何适应四边形。你可以使用

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);
该示例摘自《NEHEOpenGL指南》,我真的建议您看一看,因为它解释得很好:

查看教程6中有关纹理贴图的内容: