Pot*_*tal 4 shader android binaryfiles opengl-es-2.0
与此问题类似,但对于Android:
Android GLES20支持glShaderBinary方法,该方法基于此 gles 文档将加载预编译的着色器二进制文件.但是,我无法找到任何方法来实际预编译任何二进制文件.但是,当我GLES20.glGetIntegerv使用参数名称调用时GLES20.GL_NUM_SHADER_BINARY_FORMATS,它确实指示(至少在我正在测试的设备上)有一个可用的着色器二进制格式.我只是不知道如何实际使用它.
Mār*_*iko 16
二进制着色器格式是特定于供应商的.对于每个不同的供应商,有不同的机制将着色器编译为二进制.因此,为了支持大多数Android设备,您需要为特定供应商离线编译着色器,或者在线进行(使用GL_OES_get_program二进制扩展),当然还提供glsl源作为回退.
以下是一些流行的GPU供应商提供的OpenGL ES 2.0 SDK列表.它包括离线GLSL着色器编译器或有关二进制GLSL着色器的文档:
ARM Mali提供malisc可执行文件,可以在主机上的命令行中编译着色器.
Qualcomm Adreno实际上允许在运行时使用glGetProgramBinaryOES但不是脱机来获取GLSL着色器的二进制文件.至少如此说Adreno SDK中的文档.
PowerVR SDK还声明其GPU允许在运行时使用时获取GLSL着色器的二进制文件glGetProgramBinaryOES.
glGetProgramBinaryOES函数来自GL_OES_get_program_binary扩展.
| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |