GLSL 内置函数

isinf()

逐分量检测正或负无穷。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

genBType isinf(genType x)

genType 表示 float / vec2 / vec3 / vec4;同名占位符须使用相同类型。

参数

x
输入值或左侧向量

返回值

一个 bool 或布尔向量:正、负无穷大对应 true,其他值对应 false。

在线示例

修改右侧代码,左侧预览会实时更新。

isinf 做什么

逐分量检测正或负无穷。

看懂预览

isinf(x) 的所有输入都有限,因此绘出的结果恒为零。把 x 改成 x*1000.0 后仍是有限值,背景不会因此改变。

核心调用

float(isinf(x));

有限大数不是无穷;制造除零的测试并不保证跨设备结果一致。

修改实验

把 float(isinf(x)) 改成 1.0-float(isinf(x))。结果会处处为 1,这样可显示有限值判断的反面,无需依赖除零运算。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数