我正在开发一款具有大量旋转变换的游戏,但我遇到了一个看起来很简单的问题——我认为我做错了什么。
我用 ShapeRenderer 画了一个三角形,如下所示:
shapeRend.begin(ShapeType.Filled);
shapeRend.setColor(1, 1, 1, 1);
shapeRend.identity();
shapeRend.translate(xx, yy, 0);
shapeRend.rotate(0, 0, 1, angle);
shapeRend.triangle(-.08f, -.08f, .08f, -.08f, 0, +.08f);
shapeRend.end();
shapeRend.identity();
这一切都很好,花花公子,但我有一些我在其他地方绘制的网格。对于这个三角形上的任何变换(我假设所有的 shaperenderer)发生然后被绘制,这些变换会影响所有的网格。这是一个真正的痛苦。
由于网格上的转换是通过实际更改顶点(我可以在源代码中看到的)来处理的,我认为在转换 ShapeRenderer 后没有重置 OpenGL 转换的情况下还有其他事情在起作用?这是非常令人沮丧的,它看起来确实像一个小故障,但它会是一个相当大的一个,因为我看不到它直到现在才被发现。有什么建议么?
我正在使用 OpenGL ES 1.x 运行 LibGDX 的“最新”夜间版本