Как сравнить float в GLSL-скриптах? - PullRequest
0 голосов
/ 04 февраля 2019

В моем GLSL-сценарии я хотел бы сравнить float следующим образом:

uniform float _Highlights;

if _Highlights <> 1 { doHighlights(...); }

, но, поскольку _Highlights - это float, я боюсь, что if _Highlights <> 1 всегда будет возвращать true.

1 Ответ

0 голосов
/ 04 февраля 2019

Прежде всего, оператор "не равенство" в GLSL равен !=, а условие должно быть в скобках.Правильный синтаксис в GLSL будет выглядеть следующим образом:

if (_Highlights != 1.0)
{ 
    doHighlights(...); 
}

Если вы хотите проверить, является ли _Highlights значением, близким к 1,0, вам следует использовать значение эпсилона:

const float eps = 0.001;
if ( abs(_Highlights - 1.0) > eps )
{
    doHighlights(...); 
}
...