□ В каждой текстуре можно хранить до четырех значений шума (по одному для каждого канала текстуры R, G, В и А). Таким образом, можно вычислять четыре октавы шума и получать все четыре значения за одно обращение к текстуре.

□ Обращение к текстуре происходит быстрее, чем выполнение встроенной функции noise.

Возможность определять свои функции шума тоже необходима - используя их, можно получить совсем другое изображение, чем в результате использования встроенной функции noise. Зато определенная разработчиком функция шума потенциально может работать по-разному на разных графических ускорителях и платформах, в то время как встроенная функция шума работает везде одинаково (по крайней мере, пока все производители аппаратного обеспечения будут ре-ализовывать ее одинаково). Встроенную функцию noise можно оптимизировать для каждого графического ускорителя, возможно, даже сделав полную аппаратную реализацию, так что, скорее всего, встроенная функция noise будет работать быстрее функции, определенной разработчиком шейдера.

В целом ожидается, что приложения будут использовать либо встроенную, либо определенную функцию шума, чтобы шум не повторялся (как это может произойти при использовании текстуры), значения шума были более точными, а ресурсы текстур могли применяться для других целей. А если приложению нужно полностью контролировать работу функции шума и разработчиков устраивают ограничения в диапазоне входных значений текстурной функции шума, то используется текстурный метод создания шума. На данном этапе развития аппаратного обеспечения текстуры шума также работают быстрее и требуют меньше команд в шейдере.

12.4. Простой шей дер шума Теперь посмотрим, как можно использовать разные способы создания шума в тендерах OpenGL, которые создают интересные эффекты. Первый шейдер использует шум очень простым способом и рисует облака.

12.4.1. Настройка приложения Шейдеры, описанные здесь и в разделах 12.5 и 12.6, требуют не очень много входных параметров. Как и всегда, нужно передавать координаты вершин, а нормаль поверхности нужна для вычислений освещения. Различные цвета и коэффициенты масштабирования передаются как uniform-переменные в различные шейдеры.


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