OpenGl中的纹理

时间:2010-12-03 21:47:26

标签: opengl

是openGl的新手,我有几件事情在使用它。 所以我想要做的是绘制一个立方体,但只将纹理应用于它的一个表面...我在谷歌找到的一些随机网站上找不到答案,他们都谈论纹理整个3D对象,是否可以只将它应用于一个表面?!

谢谢你!

3 个答案:

答案 0 :(得分:1)

Nehe的OpenGL教程是我建议启动OpenGL开发的第一资源。至少,这是我开始的地方;-)

这是链接:http:// nehe.gamedev.net

纹理在Lesson 6: Texture Mapping

中解决

答案 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();