【发布时间】:2021-10-10 03:13:04
【问题描述】:
我正在尝试使用 libGDX 移植使用 opengl es 2.0 的 Android 游戏。在 libGDX 下,glDrawElements() 例程似乎在 PC 上被破坏,但在 Android 上有效。在 PC 版本上,第二个参数(顶点数)被忽略。当我使用 mFaceIndicesData.length 注释该行并使用 3 个顶点(1 个面三角形)时,它仍然在 PC 版本上绘制所有面,但在 Android 版本上仅绘制一个面,如每个图像所示。
是的,我知道 libGDX 应该与 libGDX 调用一起使用,所以请不要对此发表评论。我有一个完整的游戏引擎,它非常复杂。我更喜欢控制引擎而不是找出其他引擎,而且我很确定它可以做一些 libGDX 不支持的事情。无论如何,我不想从头开始。我只是在寻找一种从 Android 移植到 PC/IOS 的好方法,而 libGDX 似乎是一个不错的选择。
import com.badlogic.gdx.graphics.GL20;
...
@Override
public void create() {
GLES20 = Gdx.gl20;
...
// Works on PC and Android
GLES20.glDrawElements(GL20.GL_TRIANGLES, mFaceIndicesData.length, GL20.GL_UNSIGNED_SHORT, mIndices);
// Only works on Android. Not PC.
//GLES20.glDrawElements(GL20.GL_TRIANGLES, 3, GL20.GL_UNSIGNED_SHORT, mIndices);
【问题讨论】:
标签: libgdx opengl-es-2.0