C++ 为什么GLSL const bool不';不管用?
我有一个带有C++ 为什么GLSL const bool不';不管用?,c++,opengl,visual-c++,glsl,C++,Opengl,Visual C++,Glsl,我有一个带有#version 130的片段着色器,我有一个向量:均匀vec3 sunPosition 这很好: bool isTheSunUp = sunPosition.y > 0; 但以下情况并不复杂: const bool isTheSunUp = sunPosition.y > 0; 为什么?我想这是因为太阳位置不是常数。看看这一页,当你初始化一个常数时,你似乎不能把它建立在一些可能变化的基础上 “const声明的初始值设定项必须是常量表达式”我认为这是因
#version 130
的片段着色器,我有一个向量:均匀vec3 sunPosition代码>
这很好:
bool isTheSunUp = sunPosition.y > 0;
但以下情况并不复杂:
const bool isTheSunUp = sunPosition.y > 0;
为什么?我想这是因为太阳位置不是常数。看看这一页,当你初始化一个常数时,你似乎不能把它建立在一些可能变化的基础上
“const声明的初始值设定项必须是常量表达式”我认为这是因为sunPosition不是常量。看看这一页,当你初始化一个常数时,你似乎不能把它建立在一些可能变化的基础上
“常量声明的初始值设定项必须是常量表达式”因为它需要是常量表达式,而这不在您的情况下。因为它需要是常量表达式,而这不在您的情况下。请阅读第4.3.2节和第4.3.3节。当然,它清楚地解释了为什么这是非法的。请阅读第4.3.2节和第4.3.3节。它清楚地解释了为什么这是非法的。