0

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

问题:

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

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

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

4

1 回答 1

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只需将纹理坐标设置为大于 1.0 的值,并将纹理模式设置为 repreating

于 2013-04-10T06:58:53.987 回答