2
「全局變量和接口塊可以用統一修飾符來聲明,這意味着在渲染基元時多次執行着色器之間的值不會發生變化(即:在glDraw *調用期間),這些值由用戶從OpenGL API設置 它們是常量,但不是編譯時常量(因此不是const)。OpenGL爲什麼需要統一變量(而不是常量)
http://www.opengl.org/wiki/Type_Qualifier_(GLSL)#Storage_qualifier
我想我問爲什麼統一的變量不能僅僅是在編譯時恆定。
幽默,即使它們是恆定的,也不會改變任何東西。常量變量可能會使用與統一變量相同的存儲池。事實上,如果您曾經在NV驅動程序中鏈接過GLSL程序中列舉了制服列表,您會注意到它會重新命名常量,這些常量沿'_ _0''的行改變,並將它們分配到統一的位置。 –