-1
而不是一個GL程序顯式地設置統一的數據,我設置在一個簡單的測試「默認」(片段)着色器:默認均勻(陣列)值
uniform vec3 face_rgb[] = vec3[]
(
vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0),
vec3(1.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(1.0, 1.0, 0.0),
vec3(0.2, 0.2, 0.2), vec3(0.0, 0.0, 0.0)
);
取決於片段的紋理座標,一個索引值制定爲查找RGB值。 (實際的RGB值是無關緊要的)
這工作得很好用OS X(GL 3.2核心配置文件)。實際上,要比使用帶有const
陣列的索引好很多。我的問題是 - 這是有效的GLSL語法,而不是依賴於實現的黑客? (我目前沒有4+訪問權限,但我認爲答案仍然適用)。此外,關於爲什麼統一可能會超越常數陣列的任何想法?
確實如此。我發現在'glCompileShader'中使用'uniform uint'而不是'uniform int'實際*崩潰*(LLVM?)解析器的情況。 – 2013-05-04 14:59:46