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