Руководство по Yaf-Ray :: Размытые отражения - свойства реалистичной визуализации
CekuhnenTutorial R1.3 - 15 Sep 2007
Автор: Clanek Tomase Toegela (TomTNT)
Перевод: cyberdime
Размытые отражения - свойства реалистичной визуализации
Я хотел бы в этой главе коснуться последней важной для фотореализма детали. Я говорю о размытых отражениях. Многие люди недооценивают при работе важность правильной настройки этих свойств. Кто-то использует чистые, зеркального типа, Ray Trace -отражения, подходящие не для всех поверхностей. Если посмотреть на реальный окружающий нас мир, то заметно, что большинство поверхностей являются отражающими с большей или меньшей степенью неравномерности или размытия. Может это и незаметно на первый взгляд, но даже строительный бетон является довольно отражающим материалом. Но обычно эти свойства слишком подробно не продумываются, а лишь подобным образом симулируются. Высокодетализированные материалы воспроизводят только для сцен с высокими требованиями к визуализации. Практически все современные GI рендереры способны рассчитывать размытые отражения. Существует много методик расчёта - от абсолютно приближённой симуляции до высокоточного попиксельного расчёта.
Лучи, трассируемые стандартными Raytrace-системами фильтруются шейдерами и таким образом формируют изображение. Это общее описание стандартной рейтрейс-схемы. Если лучи попадают на поверхность с назначенной шейдером степенью размытости отражения, то они разбиваются на пучок отражаемых лучей и отражаются от поверхности под разными углами. Для простого неразмытого (зеркального) отражения этот угол будет равен углу падения луча на поверхность. Параметр размытия определяет углы отклонения лучей вторичного пучка от угла падения первоначального луча, так получаются размытые отражения. Вторичные лучи, попавшие на другие поверхности, возвращаются назад, к точке разбиения (той, где первичный луч при отскоке разбивается на пучок вторичных) и отражая эти поверхности, интерпретируют окончательное изображение.
Если задуматься над принципом работы, то мы снова возвращаемся к вероятности. Допустим в простой сцене - куб на отражающем полу. Отражения будут довольно чёткими ближе к границе куба и пола. И будут становиться всё более размытыми при удалении от куба. В области близко границе вторичные лучи проходят меньшую дистанцию и разветвляются на меньший угол, поэтому размытие не сильно выражено, с удалением точек дистанция и угол увеличивается и размытие становится сильнее. Так работают размытые отражения. Можно сказать, что чем дальше отражённый объект от отражающей поверхности, тем сильнее размытие его отражения.
BRDF-характеристики
Зеркальное (ray-trace) отражение. (Угол падения равен углу отражения)
Размытое отражение – пластик (Отклонения лучей вторичного пучка от угла падения)
Приведенные значения 10, 21, 45 показывают, что с увеличением дистанции происходит увеличение
размытости отражений.
Цветом выделено:
-
красным - отражённое изображение куба на полу;
-
бежевым - первичные лучи;
-
чёрным - разветвлённые вторичные лучи;
-
синий - угол поля зрения;
-
жёлтый - камера (наблюдатель)
К сожалению мы не можем вычислять размытые отражения непосредственно в Блендере, но можем имитировать их. Обычно для имитации используются карты неровностей. Фактически, если мы посмотрим на любой объект с размытыми отражениями, то увидим, что он обладает некоторой шершавостью. Собственно световые лучи и меняют направление при отскоке от этих неровностей. И только потом приходят в точку наблюдения. Такую шершавость можно создать картой неровности в слоте текстурного канала материала, активируя кнопку которая (для меня весьма необычно) называется Nor.
Теперь расскажу как создать подобный эффект. Фактически нужно установить отражающую способность для материала и создать карту неровностей.
Сцена с размытыми отражениями (Yafray):
http://blender3d.cz/others/tnt/data/yafrayglossy.zip
Отличный пример деревянного пола. Отражение создаётся двумя картами неровностей. Одна карта - текстура дерева, другая - очень тонкая процедурная текстура типа MARBLE. Фактически, это единственная процедурка, поддерживаемая Yafray. К сожалению, Yafray не работает с картами неровностей идеально. Он использует очень высокие значения сглаживания (Antialiasing -АА) для текстур, что значительно увеличивает время рендеринга. При использовании гладких, блестящих отражающих поверхностей лучше устанавливать значение сглаживания вручную, что уменьшит зернистость. Этого почти удалось добиться в данной сцене. Я не совсем понимаю принцип АА, может другие объяснят.
Сцена с размытыми отражениями (Blender Internal Engine):
http://blender3d.cz/others/tnt/data/blenderglossy1.zip
Пластиковый пол. Просчитан с помощью Blender Internal Engine. Для размытия использована только одна карта неровностей - процедурная текстура типа MARBLE с очень тонким зерном. Имитация размытых отражений используется весьма часто в самых современных рендерерах. Карты создают характерные особенности отражения. Чистое отражение с единственным настраиваемым параметром размытия выглядело бы слишком пластмассовым. Недостаток метода карт неровностей - то, что получить качественное зернение материала довольно тяжело. Чтобы сделать изображение чище, необходимо подобрать значение сглаживания АА, которое увеличивает время рендеринга. Но, несмотря на это , всё же возможно создать более-менее качественный пластик.