`sqrt`如何表现GLSL中的负值?

时间:2014-10-15 11:29:24

标签: opengl opengl-es glsl

我一直想知道GLSL中sqrt(num)是否等于sqrt(abs(num))。这正是这个函数在this shader中的表现。我无法找到有关此行为的任何文档或参考。在此着色器中,会形成一个单位圆,sqrt内的值对于圆的外部像素为负,但结果就像abs在应用sqrt之前一样。

2 个答案:

答案 0 :(得分:5)

根据the spec

  

sqrt返回x的平方根。即值√x。如果x <0,结果未定义

这意味着任何事情都可能发生,但有些实现会忽略参数上的符号位并返回正数。

答案 1 :(得分:0)

Docs回答了这些类型的问题:

  

如果x <0,则结果未定义。