ShapeRenderer Transformations Interfering with Mesh Transformations in LibGDX
我正在开发一款包含大量旋转变换的游戏,但我遇到了一个看似很简单的问题 - 我认为我做错了什么。
我用 ShapeRenderer 画了一个三角形,如下所示:
1 2 3 4 5 6 7 8 | 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 上运行
在 OpenGL ES 1.x 中,
或者,您可以切换到 OpenGL ES 2.0,它没有任何全局矩阵状态(所有变换都由着色器私有"统一",参见