我見過的所有WebGL示例代碼調用gl.useProgram(),然後爲每個框架設置程序的每個統一。事情是,你可以在WebGL項目中完成的兩件最昂貴的事情是運行Javascript代碼,並將JavaScript中的內容複製到着色器中,這裏每個人都在做每秒六十次。另外,我知道在我自己的程序中,大多數我的制服都不會隨着幀而改變。 (這主要是輕的位置等等,你可能可能混亂,但通常沒有。)我需要多久更新一次制服?
我的問題是,WebGL規範有沒有什麼可以說關於制服的值保存多久?如果我打電話給gl.useProgram(),那麼我剛剛停止使用的程序會不會失去其制服?如果調用gl.useProgram()擾亂制服,我可不可以每幀調用它,並且保留我的制服嗎?
如果我可以強迫所有用戶永遠運行Firefox 22.0,我可以編寫並運行一些測試代碼,並且可以在jiffy中找到它。可悲...