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



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

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

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

但对于sqrt,你无能为力;未定义的";不是一个值;它的意思是";任何事情都可能发生";。

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

最新更新