我正在開發Android上的OpenGL ES 3.0應用程序,主要是在Java中,我需要使用浮點渲染紋理。如何在Android上使用OpenGL ES擴展
GLES30.glGetString(GLES30.GL_EXTENSIONS)
返回包含GL_EXT_color_buffer_half_float一個字符串,GL_EXT_color_buffer_float等等=>我的設備支持浮點紋理,很明顯。
但是,我現在有點迷路瞭如何使用這些擴展。當我使用GL_RGBA代替GL_RGBA16F 調用
GLES30.glTexImage2D(GLES30.GL_TEXTURE_2D, 0, GLES30.GL_RGBA16F, 512, 512, 0, GLES30.GL_RGBA, GLES30.GL_UNSIGNED_BYTE, null);
導致一個glError 1282一切正常。 我想嘗試GL_RGBA16F_EXT,但這不包含在GLES30中。所以,我想通過價值0x881A這就是GL_RGBA16F_EXT是如何定義的。但是,同樣的錯誤:glError 1282.
函數eglGetProcAddress有時需要使用OpenGL ES擴展,但由於我不需要函數的地址,我懷疑這也不會幫助我。我真的不知道接下來要做什麼。我怎樣才能創建浮點型FBO?
哦,你是對的。謝謝!我認爲,類型參數與數據參數相關聯,因此,我指定的類型無關緊要,因爲data = null。顯然,我誤解了那裏的一些東西 - 哪個效果有類型參數?內部格式不指定一切,GPU需要知道? – j00hi 2014-09-04 14:55:09
增加了一些內容來嘗試和解釋。即使如此,從邏輯上解釋它也是很難的,因爲這些API的定義方式是一團糟。 – 2014-09-05 06:24:05