002-03 Алгоритмы визуализации

Пустое пространство и отражения в окружении

Если достигнут предел распространения луча или не обнаружены другие отражающие объекты, то луч останавливается и возвращается определенный цвет. Если же существует шейдер окружения, применяемый глобально или же как часть конкретной сети шейдеров, то такой шейдер будет использован для расчета значения цвета отражения. Следует иметь в виду, что данное значение определяется только проецируемым шейдером окружения, например, сферическим, но не в результате трассировки лучей.

В действительности, некоторые свойства трассировки лучей могут быть легко сведены к использованию проекций окружения, чтобы получить нужный цвет отражения. Такие методы имитации отражений в окружении будут рассмотрены в этой книге в самых разных контекстах. Следует заметить, что у базового шейдера отражений в mental ray (т.е. шейдера выборочной компоновки) имеется опция No-Trace (Без трассировки лучей), которая обозначается аналогичным образом в Maya, XSI и 3ds Max и вообще отменяет воссоздание отражений методом трассировки лучей независимо от установки глобальных параметров. Она действует по принципу использования шейдера окружения для формирования отражений на конкретной поверхности. Иногда такие шейдеры окружения могут представлять собой панорамные изображения самой сцены, формируемые для воссоздания отражений в течение нескольких кадров, в которых объекты остаются неподвижными. Подобные принципы воссоздания отражений будут дополнительно рассмотрены далее в главах, посвященных шейдерам.

Активизация и управление трассировкой лучей

Процедура активизации трассировки лучей и управления различными параметрами ее настройки мало чем отличается в трех основных приложениях. Сначала мы рассмотрим флаги для автономной трассировки лучей, а затем выявим их аналоги в основных приложениях. В действительности, все они были определены ранее в разделе "Процесс трассировки лучей". В приведенных ниже подразделах основное внимание будет уделено отражению и преломлению, а о методах ускорения трассировки лучей и тенях вы сможете узнать из глав 5, 6 и 7.

В командной строке автономного средства визуализации поддерживаются следующие опции, имеющие отношение к активизации трассировки лучей, установки пределов на число отражений и преломлений и максимальной глубины трассировки лучей.

-trace [on | off]
-tracejdepth [reflect] [refract] [max trace]

Опция "trace активизирует и отменяет трассировку лучей во время визуализации. А опция -trace_depth ограничивает, как упоминалось выше, число отклонений вторичного луча в сцене. Это ограничение распространяется не только на число отражений или преломлений, но и на общее их число.

MAYA

1. Откройте в Maya окно Render Settings и найдите на вкладке mental ray свиток Raytracing, приведенный на рис. 2.6.

2. Флажок Ray tracing (Трассировка лучей) служит для активизации или полной отмены трассировки лучей и соответствует опции -trace, доступной из командной строки. Следует иметь в виду, что флажок Ray tracing связан с флажком Raytracing, доступным из области Secondary Effects в свитке Rendering Features (см. рис. 2.2). Так, если изменить состояние одного из этих флажков, автоматически обновится состояния и другого.

Рис. 2.6. Параметры настройки трассировки лучей в Maya находятся на вкладке mental ray в окне Render Settings

Рис. 2.7. Параметры настройки трассировки лучей для шейдеров Maya. Эти параметры могут совершенно неожиданно ввести пользователя в заблуждение, накладывая ограничения на отраженные или преломленные лучи

3. Атрибуты Reflections (Отражения), Refractions (Преломления) и Max Trace Depth (Максимальная глубина трассировки лучей) аналогичны описанным ранее параметрам, ограничивающим трассировку лучей в mental ray. Эти параметры одинаковы во всех упоминаемых основных приложениях.

4. Атрибут Shadows (Тени) ограничивает число отклонений теней, формируемых методом трассировки лучей, а также их видимость при переходе от одной (отражающей) поверхности к другой. Подробнее о тенях, формируемых методом трассировки лучей, речь пойдет в главах 6 и 7.

5. Атрибуты Reflection Blur Limit (Предел размывания отражения) и Refraction Blur Limit (Предел размывания преломления) определяют число размытых отражений и преломлений соответственно. А поскольку эти атрибуты действуют не совсем верно, то они анализируются более подробно в главе 10.

Примечание
Если в сцене, подлежащей трассировке лучей, используются шейдеры Maya, то при увеличении пределов трассировки лучей в свитке Raytracing необходимо также увязать с ними пределы, устанавливаемые для соответствующих сетей шейдеров, используя атрибуты Refraction Limit и Reflection Limit из свитка Raytracing Options (Параметры трассировки лучей) для моделей шейдеров с отражением, подобных шейдерам Blinn или Phong, как показано на рис. 2.7.

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

Кроме того, трассировку отражений и преломлений лучами можно отменить на уровне отдельных объектов независимо от параметров настройки шейдера или глобальных параметров. Для этого следует перейти к свитку mental ray в окне Attribute Editor (Редактор атрибутов) из узла выделенной формы (или же к свитку Flags (Флажки), доступному из аналогичного свитка mental ray в узле преобразования). В свитке из узла формы достаточно сбросить флажки атрибутов Trace Reflections (Трассировать отражения лучами) и Transmit Refractions (Пропускать преломления), чтобы отменить соответствующие свойства трассировки лучей для выбранного объекта.

Примечание
Пределы трассировки лучей имеют только собственные шейдеры Maya. А шейдеры mental ray, доступные в режиме Create mental ray Nodes (Создание нод mental ray), не имеют подобных ограничивающих атрибутов, и поэтому подчиняются глобальным параметрам настройки визуализации.

XSI

1. Откройте в XSI свиток mental ray Render Options из главного меню, панели инструментов Render или же из окна Render Manager. Выберите вкладку Optimization и найдите в ней область Secondary Rays - Depth (Вторичные лучи - глубина), как показано на рис. 2.8.

Рис. 2.8. Параметры настройки трассировки лучей в XSI, доступные на вкладке Optimization

2. В области Secondary Rays - Depth вы можете установить или сбросить флажок Enable, чтобы соответственно активизировать или отменить трассировку лучей. В режиме командной строки этому флажку соответствует опция -trace.

3. Если флажок Enable установлен, то вы можете указать пределы трассировки лучей в полях свойств Reflection, Refraction и Combined (Совместно), как показано на рис. 2.8. Свойству Combined соответствует упоминавшаяся выше опция максимальной глубины трассировки лучей.

Примечание
Не следует забывать, что в XSI обновления трассировки лучей поддерживаются на визуализируемом участке. Если вы хотите увидеть результат такого обновления "вживую" то переместите вверх и вниз ползунки из свитка Render Region Options (Параметры визуализируемого участка) в простой сцене с интенсивным отражением.

Шейдеры XSI предоставляют независимый доступ к каждому типу лучей, а следовательно, для трассировки разных лучей вы можете установить особые "правила" (подробнее об этом речь пойдет в главе 12).

4. В XSI преимущественные настройки трассировки лучей можно устанавливать на уровне отдельной поверхности.

5. Выберите для конкретного объекта вкладку Visibility (Видимость) из окна Explorer (Проводник) или же нажмите функциональную клавишу , а затем изучите содержимое вкладки Rendering, приведенной на рис. 2.9.

Рис. 2.9. Параметры настройки видимости на уровне отдельного объекта, определяющие в XSI свойства визуализации поверхности этого объекта

6. В области Ray Visibility (Видимость луча) вы можете установить флажок свойства Primary (Основной луч), чтобы сделать видимой поверхность. Действие этого свойства распространяется на основные лучи независимо от метода визуализации (с построчной разверткой или трассировкой лучей). Если же флажок Primary сброшен, то поверхность становится невидимой.

7. Флажок Secondary (Вторичный луч) позволяет активизировать отраженные или преломленные вторичные лучи для выбранного объекта. Если сбросить этот флажок, то отражения или преломления на поверхности данного объекта не визуализируются, т.е. становятся невидимыми независимо от их активизации с помощью глобальных параметров.

8. В областях Reflection и Refraction имеются два флажка для дальнейшей настройки свойств вторичных лучей (как отраженных, так и преломленных).

  • Флажок Caster (Отбрасыватель) исключает вторичные лучи для каждого из рассматриваемых свойств трассировки лучей. Так, если этот флажок сброшен в области Reflection, то отражения на поверхности от других объектов, находящихся на сцене, не появляются.
  • Флажок Visible (Видимость) делает поверхность видимой или невидимой на других отражающих поверхностях. Так, если этот флажок сброшен, то поверхность визуализируется определенным цветом — даже цветом отражения (как и при установке флажка Caster), но ее цвет не появится на других поверхностях, где визуализируются отражения, т.е. она окажется, по существу, невидимой для других вторичных лучей.
  • 3DS MAX

    1. Выберите из главного меню команду RenderingRender, чтобы открыть окно Render Scene: mental ray Renderer. Раскройте свиток Rendering Algorithms на вкладке Renderer этого окна (как и в предыдущей процедуре настройки параметров визуализации в 3ds Max). Этот свиток приведен на рис. 2.10.

    2. В области Ray Tracing вы можете активизировать или же отменить визуализацию с трассировкой лучей, установив или сбросив флажок Enable, которому соответствует опция -trace в режиме командной строки.

    3. Если флажок Enable установлен, то вы можете указать пределы трассировки лучей в полях параметров Max Reflections (Максимальное число отражений), Max Refractions (Максимальное число преломлений) и Max Depth (Максимальная глубина), как показано на рис. 2.10.

    Рис. 2.10. Параметры настройки трассировки лучей в 3ds Max, доступные из свитка Rendering Algorithms

    Рис. 2.11. Область назначения карт для шейдера 3ds Max, где различные типы шейдеров присоединяются к дереву шейдеров

    Если используются собственные шейдеры 3ds Max, а не специфические для mental ray, то отражения и преломления необходимо также активизировать в области назначения карт соответствующего шейдерв, как показано на рис. 2.11. Для этого отройте окно Material Editor (Редактор материалов), выберите нужный шейдер и раскройте свиток Maps (Карты).

    Активизировать параметр Reflection или Refraction недостаточно. Необходимо также назначить шейдер отражений, например, составной шейдер Reflect (Base) на позиции карты отражения или же шейдер 3ds Max типа Reflect/Refract на позиции карты преломления (оба шейдера показаны в виде карт Map # 3 и Map # 5 соответственно). Этот процесс выполняется по тем же самым принципам, которые представлены в главе 1 для базовых шейдеров mental ray и составных шейдеров.