2012-07-09 26 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,沒有辦法做到這一點。

相關問題