如何在三角形条上渲染纹理?

时间:2016-09-20 23:32:10

标签: opengl-es libgdx

我正在使用libgdx库创建一个Android侧滚动游戏。我在immediateModeRenderer20模式下使用GL_TRIANGLE_STRIP来渲染无限滚动的2D三角形条带。渲染工作正常,我已经想出如何在条带上使用纯色,渐变和交替图案。

有没有办法渲染三角形条带但是用.png或纹理或类似的东西覆盖它?

我已查看了texCoord(...) docs中的immediateModeRenderer20方法,但我没有找到任何有关如何使用它的可靠示例。

如果有人需要任何代码段或图片,请与我们联系。

1 个答案:

答案 0 :(得分:0)

是的,有可能,我最近尝试过同样的事情。

渲染它的循环看起来很简单:

texture.bind();
immediateModeRenderer20.begin(camera().combined, GL20.GL_TRIANGLE_STRIP);
immediateModeRenderer20.color(new Color(1, 1, 1, 1));
immediateModeRenderer20.texCoord(textureCoordinate.x, textureCoordinate.y);
immediateModeRenderer20.vertex(point.x, point.y, 0f);
immediateModeRenderer20.end();

但重要的是你建立你的纹理坐标以匹配你的三角形。在我的情况下,我会画一条像这样的绳子:

http://imgur.com/i0ohFoO

来自直绳的纹理。要纹理每个三角形,你需要纹理坐标x和y - 记住纹理使用不同的坐标:对于x和y,从0.0到1.0。

http://imgur.com/wxQ93KO

所以你的三角形顶点需要textureCoord值:

  1. x:0.0,y:0.0
  2. x:0.0,y:1.0
  3. x:三角形长度,y:0.0
  4. x:三角形长度,y:1.0
  5. 等等。