Android Opengles 3.1 - 支持统一缓冲对象

时间:2017-04-13 13:38:11

标签: android opengl-es-3.1

我有一个opengles 3.1应用程序,可以在桌面上呈现,但不能在android上呈现。

出错的地方是我有统一的缓冲对象。在顶点着色器中,我有以下例如

layout (std140, binding = 0) uniform matrixUbo
{
  mat4 projection;
  mat4 view;
};

这可以正常使用deskop驱动程序,但在Android上它失败。我正在测试的opengles的版本是3.2兼容的,并且函数调用在android中可用。

我已尝试在顶点着色器中设置绑定并使用glUniformBlockBinding方法设置它们,并且两者都不适用于android(但两者都在桌面上工作)。

如果我不使用那些矩阵然后对象确实渲染好(我可以在我的Android手机上看到它们好)但是当我包含那些矩阵时,没有画出来告诉我矩阵充满零。

在Android上支持UBO需要做些什么特别的事情吗?

我很乐意根据需要提供更多信息。

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,它们在android opengl es 3.1上得到支持,但是当你更新数据时,你需要使用ByteBuffer而不是FloatBuffer,即使函数调用支持它。奇怪的问题和调试的痛苦!!

相关问题