我有一個片段着色器#version 130
,我有一個向量:uniform vec3 sunPosition;
。爲什麼GLSL const bool不起作用?
這是正常工作:
bool isTheSunUp = sunPosition.y > 0;
但下面不complie:
const bool isTheSunUp = sunPosition.y > 0;
爲什麼?
我有一個片段着色器#version 130
,我有一個向量:uniform vec3 sunPosition;
。爲什麼GLSL const bool不起作用?
這是正常工作:
bool isTheSunUp = sunPosition.y > 0;
但下面不complie:
const bool isTheSunUp = sunPosition.y > 0;
爲什麼?
因爲它需要constant expression,這是不是你的情況。
我認爲這是因爲sunPosition不是一個常量。看這個頁面https://bugs.freedesktop.org/show_bug.cgi?id=25830,似乎當你初始化一個常量時,你不能基於可能會有所不同的東西。
「爲const聲明初始值設定項必須是常量表達式」
閱讀4.3.2節和4.3.3節。 [規範](https://www.opengl.org/registry/doc/GLSLangSpec.4.30.6.pdf) - 它清楚地解釋了爲什麼這是非法的。 –