2
我一直在試圖學習OpenGL,專門爲Android。我已經在網上看到了各種教程,並且我注意到許多OpenGL 1.0或1.2的教程不需要編譯着色器程序,而我可以找到的OpenGL 2.0的所有教程都涉及創建自定義着色器來呈現視圖。爲什麼我們在OpenGL 2的運行時編譯着色器?
使用字符串來保存代碼(GLSL),然後在運行時編譯和鏈接此代碼的過程感覺很繁瑣(甚至是哈克)。這是必要的,因爲GPU架構可以有很大的不同?
有沒有辦法使用某種不需要此步驟的默認着色器(如內置着色器)?我只想繪製像GL_POINTS,GL_LINES等圖元。
你是什麼意思的「IR版本」?而關於預編譯,這意味着在應用運行時(至少是第一次)仍然編譯,對吧?還是在開發每種GPU類型期間可以完成的事情,並且在運行時有選擇地加載? – snapfractalpop 2015-02-10 16:31:56
「中間代表」基本上是字節代碼。是的,但是一些優化和驗證可以在手之前完成。 – 2015-02-10 16:33:56
啊,好的。所以,字符串中的代碼是必要的,那麼沒有任何「內置」通用着色器? – snapfractalpop 2015-02-10 16:41:07