OpenGL纹理未正确应用

时间:2013-04-10 06:52:35

标签: opengl

我有一些关于在OpenGL中为对象添加颜色和纹理的问题。我有一个小场景。在这个场景中,我有两个盒子。

问题:

  1. 假设我想要一个纯色的盒子和另一个带有纹理的盒子。 在我画箱子之前。 1我做glcolor并设置我的立方体的颜色。只要我没有为下一个立方体绑定纹理,这项工作就很好。当我绑定纹理时,我的立方体最终都具有相同的纹理。我如何才能很好地发挥这个作用?我可以在同一个“场景”中同时使用glColor和绑定纹理吗?

  2. 看起来纹理不会拉伸以适应盒子的整个侧面。这是因为我弄乱了纹理坐标还是某个地方的设置?

  3. 假设我想在平面上多次重复纹理。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

1 您需要首先绑定该纹理,绘制立方体,然后用glBindTexture(..., 0)取消绑定纹理,然后绘制其他立方体

还要注意将纹理立方体的颜色设置为白色,这样就可以看到立方体的所有颜色。

2 您可能没有正确设置纹理坐标,请注意您需要正确发送多边形

实施例

glBegin(GL_TRIANGLES);
<texture coordinates for point 1 of polygon 1>
<coordinates for point 1 of polygon 1>

<texture coordinates for point 2 of polygon 1>
<coordinates for point 2 of polygon 1>

<texture coordinates for point 3 of polygon 1>
<coordinates for point 3 of polygon 1>

<texture coordinates for point 1 of polygon 2>
<coordinates for point 1 of polygon 2>
...

3 只需设置为texturecoordinates一个大于1.0的值,并将纹理模式设置为表示