Best way to detect NaN's in OpenGL shaders

前端 未结 2 1449
孤城傲影
孤城傲影 2021-02-12 23:21

I ran into what seemed a mysterious bug this morning that I feel very lucky to have stumbled upon a solution for quite quickly.

I was dividing by a counter to produce a

2条回答
  •  日久生厌
    2021-02-12 23:43

    Lack of isnan is problem for WebGL and Opengl ES 2.0. Polyfill which works for all GPUs I had an opportunity to try:

    bool isnan( float val )
    {
      return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;
      // important: some nVidias failed to cope with version below.
      // Probably wrong optimization.
      /*return ( val <= 0.0 || 0.0 <= val ) ? false : true;*/
    }
    

提交回复
热议问题