我如何检查 glsl 中的值是否未定义?

How could I check if a value is undefined in glsl?

我有一个基本上充当高度图的顶点着色器,问题是有时当函数的输出未定义时它不会向缓冲区写入任何内容。 (特别是在除以 0 的情况下或在 sqrt(-) 情况下)这会导致锯齿状边缘,因为某些三角形未呈现。有没有办法让我检查 glsl 中的空值或未定义值?

编辑: 我只需要可以做的事情:f(x) == undefinedf(x) == null,其中 f(x) 是一个输出浮点数的函数。

浮点数除以零不会产生“未定义”。它产生正无穷大或负无穷大 (INF),您可以使用 isinf() 函数检测 INF 值。

但是对于 sqrt,您无能为力。 “未定义”不是一个值;这意味着“任何事情都可能发生”。

最好在进行计算之前清理输入,而不是之后。