Трехмерный шум и мраморная текстура Зернистость в таких материалах, как мрамор, имеет весьма хаотический характер, как показано на рис. 14.26. Через камень проходят «турбулентные» прожилки из более темного материала со случайно расположенными завихрениями и пятнами, как если бы этот камень образовался из сильно перемешанного расплава. Эту турбулентность можно имитировать, построив «шумовую функцию», возвращающую в каждой точке (х, у, г) пространства истинно случайную величину. Затем это «шумовое поле» контролируемым образом «перемешивается» для получения эффекта турбулентности.
14.8. Наложение текстуры на поверхности

Рис. 14.25. Объекты, «вырезанные» из дерева

Рис. 14.26. Объекты, «вырезанные» из мрамора Само по себе шумовое поле запрограммировать нетрудно. Представим себе случайную величину, определенную для каждой целочисленной точки в пространстве, то есть в точках (х, у, z) = k) для любой комбинации целых чисел k. Такое размещение точек называется целочисленной решеткой (integer lattice). На рис. 14.27, а приведен двумерный вариант, где для различных точек двумерной целочисленной решетки помечены значения шума в пределах от нуля до единицы. Например, точке (1,2) соответствует значение шума 0,653, а в точке (3,1) шум равен 0,129. На рис. 14.29, б показана трехмерная целочисленная решетка. Представьте себе, что каждой целочисленной точке соответствует фиксированное значение шума, как, например, 0,7341 для точки (2,2,1).

Рис. 14.27. Определение шумовых значений в каждой точке трехмерной целочисленной решетки
Введение в трассировку лучей
Совокупность значений шума можно было бы хранить в массиве огромных размеров"opengl1_975.html">⇐ Предыдущая| |Следующая ⇒