0

一直试图弄清楚如何使用 OpenGL 和 GLUT 在立方体的每一侧放置不同的纹理。我可以让它成为一个简单的纹理,但多个纹理不会。我会提出我的代码,但现在它又丑又乱。如果这很容易做到,请发布一些代码供我遵循。谢谢!

4

1 回答 1

0

它的 NEHE openGL 第 22 课http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=22,那么如果你想为每个面设置不同的纹理,你可以修改每个面的立方体渲染部分通过切换glClientActiveTextureARB(GL_TEXTURE0_ARB);,或glClientActiveTextureARB(GL_TEXTURE1_ARB);取决于您拥有的纹理数量。

例如:`

 // Back Face
    glClientActiveTextureARB(GL_TEXTURE0_ARB);
    glNormal3f( 0.0f, 0.0f,-1.0f);
    for (i=4; i<8; i++) {
        glTexCoord2f(data[5*i],data[5*i+1]);
        glVertex3f(data[5*i+2],data[5*i+3],data[5*i+4]);
    }
    // Top Face  
    glClientActiveTextureARB(GL_TEXTURE1_ARB);
    glNormal3f( 0.0f, 1.0f, 0.0f);
    for (i=8; i<12; i++) {
        glTexCoord2f(data[5*i],data[5*i+1]);
        glVertex3f(data[5*i+2],data[5*i+3],data[5*i+4]);
    }

`

免责声明:我从不测试这些代码,它基于我的记忆,你应该检查我是否怀疑它是 glClientActiveTexture() 还是 glActiveTexture()

于 2010-03-07T12:22:29.190 回答