GLSL 是否有任何用于 +/-infinity 或 NaN 的预定义常量?我这样做是一种解决方法,但我想知道是否有更清洁的方法:
// GLSL FRAGMENT SHADER
#version 410
<snip>
const float infinity = 1. / 0.;
void main ()
{
<snip>
}
我知道这个isinf
函数,但我需要将无穷大分配给一个变量,这样对我没有帮助。
它没有预定义的常量,但是有一个isinf
函数可以测试某事物是否为无穷大。
当我在这里时,是否有其他东西的常量,如 FLT_MAX FLT_EPSILON 等,就像 C 中的方式一样?
不是,没有。
这可能有用吗?
const float pos_infinity = uintBitsToFloat(0x7F800000);
const float neg_infinity = uintBitsToFloat(0xFF800000);
“如果在参数x中传递浮点无穷大的编码,则得到的浮点值是对应的(正或负)浮点无穷大”