наверняка будет выполняться быстрее и потребует меньше машинных ресурсов, чем clamp(x. 0.0. 1.0): так как нет смысла проверять, что полученное значение меньше нуля. Не нужно вызывать функцию cl amp для значений цвета и глубины фрагментного шейдера, так как это выполняется автоматически после завершения шейдера.
Функции min, max, clamp показаны на рис. 5.8-5.10 соответственно. Функция mi п(х, у) имеет наклон при х, меньшем у, и является прямой горизонтальной линией при х, большем г/. Эта функция часто используется для ограничения окончательного результата, например, чтобы гарантировать, что вычисленный результат никогда не превысит 1,0.
Функция тах(лг, у) выглядит как прямая линия при х меньшем, чем у, и как наклонная при х, большем у. Эта функция, как и пп'п, часто используется для ограничения окончательного результата, например, чтобы гарантировать, что вычисленный результат никогда не будет меньше 0.
Функция с! апчр(;с, пппУа!, ггиХУаЛ) не имеет наклона при х, меньшем гтппУа!, и х, большем тахУа1, и имеет наклон при х, большем пл пУа 1 и меньшем шахУа1. Она функционально эквивалентна выражению плл(тах(.г-, лп'пУа!), тахУа!).
Рис. 5.8. Функция min
З.'Общие функции
Рис. 5.9. Функция max
Рис. 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).
⇐ Предыдущая| |Следующая ⇒