是openGl的新手,我有几件事情在使用它。 所以我想要做的是绘制一个立方体,但只将纹理应用于它的一个表面...我在谷歌找到的一些随机网站上找不到答案,他们都谈论纹理整个3D对象,是否可以只将它应用于一个表面?!
谢谢你!答案 0 :(得分:1)
Nehe的OpenGL教程是我建议启动OpenGL开发的第一资源。至少,这是我开始的地方;-)
这是链接:http:// nehe.gamedev.net
中解决答案 1 :(得分:1)
使用:
glEnable(GL_TEXTURE_2D);
在渲染一个曲面之前,然后在其他曲面之前:
glDisable(GL_TEXTURE_2D);
当然,您必须确保在加载纹理,设置纹理并将其绑定到渲染表面之前进行绑定。
答案 2 :(得分:0)
您还必须将纹理坐标添加到要应用纹理的多边形的顶点。为此,您必须使用glTexCoord2f / glTexCoord2d。因此,例如,如果您有以下(无纹理)多边形:
glBegin(GL_POLYGON);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
glVertex3f(1.0f, 1.0f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glEnd();
添加如下纹理坐标:
glBegin(GL_POLYGON);
glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 1.0f, 0.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, 1.0f, 0.0f);
glEnd();