наверняка будет выполняться быстрее и потребует меньше машинных ресурсов, чем clamp(x. 0.0. 1.0): так как нет смысла проверять, что полученное значение меньше нуля. Не нужно вызывать функцию cl amp для значений цвета и глубины фрагментного шейдера, так как это выполняется автоматически после завершения шейдера.

Функции min, max, clamp показаны на рис. 5.8-5.10 соответственно. Функция mi п(х, у) имеет наклон при х, меньшем у, и является прямой горизонтальной линией при х, большем г/. Эта функция часто используется для ограничения окончательного результата, например, чтобы гарантировать, что вычисленный результат никогда не превысит 1,0.

Функция тах(лг, у) выглядит как прямая линия при х меньшем, чем у, и как наклонная при х, большем у. Эта функция, как и пп'п, часто используется для ограничения окончательного результата, например, чтобы гарантировать, что вычисленный результат никогда не будет меньше 0.

Функция с! апчр(;с, пппУа!, ггиХУаЛ) не имеет наклона при х, меньшем гтппУа!, и х, большем тахУа1, и имеет наклон при х, большем пл пУа 1 и меньшем шахУа1. Она функционально эквивалентна выражению плл(тах(.г-, лп'пУа!), тахУа!).

Функция min

Рис. 5.8. Функция min

З.'Общие функции

Функция max

Рис. 5.9. Функция max

Функция clamp

Рис. 5.10. Функция clamp

Функция step может использоваться для создания бесконечной прямой со сменой значения в конкретной точке (рис. 5.11). Использование этой функции рассматривается в главе 6 на примере создания простого процедурного шейдера.

Функция smoothstep (рис. 5.12) может быть полезна в случае, если в определенной точке нужен плавный переход от одного значения к другому. Например, если С - float, это эквивалентно

float t"images/tmp16FC-16.png" alt="Функция step">

Рис. 5.11. Функция step

5 Зак. 218

Встроенные функции

edgel edge2 Рис. 5.12. Функция smoothstep

5.4. Геометрические функции Геометрические функции, исключая тг-гапБГогт, можно использовать и из вершинного, и из фрагментного шейдера. Эти функции работают с параметрами-векторами как с настоящими векторами, а не поэлементно (табл. 5.4).


⇐ Предыдущая| |Следующая ⇒