2010-03-07 38 views
0

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

+0

您是使用gluCube还是独立绘制每一面? – epatel 2010-03-07 11:51:55

回答

0

其讷河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]); 
    } 

`

声明:我从来没有测试这些代码,其根据我的记忆,你应该检查ii'am怀疑它是否glClientActiveTexture()或glActiveTexture()