тагЫе(дг, у, z) = undulate(sin(z + A turb(s, х, у, z))).

Конструирование мраморной текстуры

Рис. 14.31. Конструирование мраморной текстуры: а) сплайн-кривая; б) невозмущенная мраморная текстура Фаза функции зт( ) смещена в различных местах мрамора на различные величины, что значительно увеличивает реалистичность прожилок. Параметр $ ускоряет или замедляет турбулентность в различных точках, а параметр А определяет величину возмущения. Уатт продемонстрировал, что если функцию ипсЫаг.е( ) заменить обычной прямой линией, то результат будет значительно менее удовлетворительным.

Мраморная текстура

Рис. 14.32. Мраморная текстура: а) А = 1; б) А = 3; в) А = б На рис. 14.32 приведена мраморная текстура, изображенная на грани куба. Она является графиком функции:

g = ипс1и1аг.е(зт(2я.г + А х ШгЬ(5, х, у, г))), где г изменяется от 0 справа до единицы слева, а ось у направлена вверх. На рис. 14.32, а амплитуда А = 1, в результате чего имеет место лишь малая турбулентность. На рис. 14.32, б и в амплитуда А равна соответственно 3 и 6, и турбулентность там намного более значительна.

Значение функции тагЫе( ) можно использовать в качестве коэффициента отражения в уравнении (14.34), чтобы модулировать количество света, возвращаемого из различных точек объекта, кото-

Введение в трассировку лучей

рые посещаются различными лучами. Нетрудно расширить функцию тагЫе( ) так, чтобы она возвращала красный, зеленый и синий компоненты полноцветных трассировщиков лучей. На рис. 14.33 показана сцена, состоящая из нескольких мраморных объектов. Эффект весьма убедителен.

Сцена с мраморными объектами

Рис. 14.33. Сцена с мраморными объектами Практические упражнения

14.8.1. Сплайн-функция, подходящая для создания мраморной текстуры

Функция

float Noise"opengl1_981.html">⇐ Предыдущая| |Следующая ⇒