Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么GLSL const bool不';不管用?_C++_Opengl_Visual C++_Glsl - Fatal编程技术网

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节。它清楚地解释了为什么这是非法的。