2012-07-09 25 views
1

我正在处理一些复杂的着色器,需要5秒左右才能在iOS设备上编译。着色器经过高度优化以减少应用程序的运行时间,但是它们变得越优化,编译时间越长。在iOS上保存编译的GLSL二进制文件与OpenGL ES

我想知道是否有一种方法来保存着色器的编译版本在第一次运行后加载,而不是每次运行应用程序时编译它。任何关于如何解决这个问题的想法都是非常有用的。

我相信OpenGL 4.1有一个名为“ARB_get_program_binary”的扩展,它允许完成这样的事情,但对于iOS来说这绝对不是一个选项。

回答

3

OpenGL ES 2已经在其核心规范中着色了二进制。

但是,iOS实现OpenGL ES的问题在于它不会导出任何二进制格式。意义glGetInteger(GL_NUM_SHADER_BINARY_FORMATS)返回0.

所以在iOS上使用二进制着色器格式没有运气。

-1

直到iOS 8和OpenGL ES 3.0,没有办法做到这一点。

相关问题