如何处理 OpenGL ES 2.0 着色器中的 NaN 或 inf

2024-04-18

这是基于以下问题:在 OpenGL 着色器中检测 NaN 的最佳方法 https://stackoverflow.com/questions/9446888/best-way-to-detect-nans-in-opengl-shaders

标准 GLSL 定义了 isnan() 和 isinf() 函数进行检测。 OpenGL ES 2.0 着色语言则不然。我该如何处理 NaN 和 Infs?


您可以通过仅适用于 NaN 的条件来检查 NaN:

bool isNan(float val)
{
  return (val <= 0.0 || 0.0 <= val) ? false : true;
}

isinf有点困难。没有机制可以将浮点数转换为其整数表示形式并使用这些位。因此,您必须将其与适当大的数字进行比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 OpenGL ES 2.0 着色器中的 NaN 或 inf 的相关文章

随机推荐