Трехмерный шум и мраморная текстура Зернистость в таких материалах, как мрамор, имеет весьма хаотический характер, как показано на рис. 14.26. Через камень проходят «турбулентные» прожилки из более темного материала со случайно расположенными завихрениями и пятнами, как если бы этот камень образовался из сильно перемешанного расплава. Эту турбулентность можно имитировать, построив «шумовую функцию», возвращающую в каждой точке (х, у, г) пространства истинно случайную величину. Затем это «шумовое поле» контролируемым образом «перемешивается» для получения эффекта турбулентности.
14.8. Наложение текстуры на поверхности
![Объекты, «вырезанные» из дерева](/books/images/tmp8E4A-918.png)
Рис. 14.25. Объекты, «вырезанные» из дерева
![Объекты, «вырезанные» из мрамора](/books/images/tmp8E4A-919.png)
Рис. 14.26. Объекты, «вырезанные» из мрамора Само по себе шумовое поле запрограммировать нетрудно. Представим себе случайную величину, определенную для каждой целочисленной точки в пространстве, то есть в точках (х, у, z) = k) для любой комбинации целых чисел k. Такое размещение точек называется целочисленной решеткой (integer lattice). На рис. 14.27, а приведен двумерный вариант, где для различных точек двумерной целочисленной решетки помечены значения шума в пределах от нуля до единицы. Например, точке (1,2) соответствует значение шума 0,653, а в точке (3,1) шум равен 0,129. На рис. 14.29, б показана трехмерная целочисленная решетка. Представьте себе, что каждой целочисленной точке соответствует фиксированное значение шума, как, например, 0,7341 для точки (2,2,1).
![Определение шумовых значений в каждой точке трехмерной целочисленной решетки](/books/images/tmp8E4A-920.png)
Рис. 14.27. Определение шумовых значений в каждой точке трехмерной целочисленной решетки
Введение в трассировку лучей
Совокупность значений шума можно было бы хранить в массиве огромных размеров"opengl1_975.html">⇐ Предыдущая| |Следующая ⇒