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