2017-04-13 56 views
0

我有一個opengles 3.1應用程序,可以在桌面上呈現,但不會在android上呈現。Android Opengles 3.1 - 支持統一的緩衝區對象

出錯的位是當我有統一的緩衝區對象時。在頂點着色器我有下面的例子

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

此使用deskop驅動程序工作正常,但在Android上失敗。我正在測試的opengles版本是3.2兼容的,並且函數調用在android中可用。

我已經嘗試在頂點着色器中設置綁定並使用glUniformBlockBinding方法設置它們,並且兩者都不能在android上工作(但都在桌面上工作)。

如果我不使用這些矩陣,然後對象確實渲染好(我可以在我的android手機上看到它們),但是當我包含這些矩陣時,沒有任何東西被繪製,這告訴我矩陣滿了零。

在Android上支持UBO有什麼特別之處嗎?

我很高興根據需要提供更多信息。

回答

0

爲了回答我自己的問題,他們在android opengl 3.1上得到支持,但是當您更新數據時,即使函數調用支持它,也需要使用ByteBuffer而不是FloatBuffer。奇怪的問題和調試的痛苦!