Проходы визуализации

Render Passes are necessary because of the different things the Blender Renderer must calculate to give you the final image. In each „pass“ the engine calculates different interactions between objects.

Render Passes in Detail

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

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

  • Куда падают тени?
  • Как фоновый окружающий свет блокируется (заслоняется) объектами в сцене?
  • Как свет отражается от зеркальных поверхностей? Например, тени – они вычислются по линиям распространения света, которые испускаются из камеры и отскакивают от отражающих поверхностей, так что когда эти линии попадают в объект, движок вычисляет, что камера должна его видеть.
  • How is light bent (refracted) as it passes through transparent objects? Does it go straight through? Does it bend? If so, at what depth in the object?
  • Каковы характеристики объектов в сцене и каковы их границы? Должен ли объект выглядеть смазанным, или же находиться фокусе?
  • Насколько быстро движутся объекты (их скорость)? Надо ли применять размытие в соответсвии с нашей частотой кадров, или же он движется достаточно медленно, чтобы этим размытием можно было пренебречь?
  • How far away from the camera are objects“ surfaces (Z depth)? Can the object’s surfaces be seen at all, or are they being blocked by another object’s geometry?
  • Does an object have a normal vector (bump map)? Do shadows and apparent geometry need to be calculated for any objects?
  • Is there any specularity? Are objects with textures such as metal shiny at all?

Ответом на каждый вышеперечисленный вопрос будет изображение или карта, как показано ниже:

../../../_images/render_blender-render_settings_passes_example.jpg

Each Render Pass puts out an image or a map. For the purposes of this example, a Render Layer was defined to produce all possible outputs. When a Render Layer input node was added to the node diagram and the Render Layer node was subsequently associated with the Render Layer, all of the layer’s outputs appeared as connection points on the right-hand (output) side of the node.

Render Passes that produce Images can be directly viewed in a viewer, or, if they are the only pass that is rendered, saved as the render image. If the pass is enabled, it can be saved in a multi-layer OpenEXR format.

Если выходом прохода визуализации является не изображение, а карта, её следует преобразовать во что-то, что можно увидеть. Например, карта Z-глубины является массивом значений, определяющих, как далеко от камеры находится каждый пиксель; значения в диапазоне +/-3 000 000 единиц Blender’а или около того. Такое преобразование или масштабироание делает промежуточный узел между выходом узла «Слои визуализации» и входом узла «Просмотрщик» (например, узел «Отобразить значение»). Если вы планируете работать с картой как с изображением и хотите получить хорошие результаты, вы должны использовать этот конкретный тип узла перевода. Затем, после внесения необходимых корректировок, вы должны будете пропустить карту обратно через аналогичный узел, чтобы перед сохранением отмасштабировать её значения обратно к оригинальным.

Выбор проходов визуализации

../../../_images/render_blender-render_settings_passes_panel.png

Render Passes are the various distinct outputs that the renderer is able to generate. All of the following render outputs are normally combined into a single output known, appropriately enough, as the Combined output. But you can also select any of them to be output as a separate pass. (If you do so, in most cases you can choose whether to also continue to include it in the Combined output).

Некоторые из этих выходов должны быть включены и использоваться в вашей сцене (а не просто быть выбранными в панели «Слои визуализации»), чтобы они на что-нибудь влияли. Например, если в вашей сцене нет источников света или эти источники не отбрасывают тени, или на объекты не назначены материалы, умеющие принимать тени, проход Тень будет пустым; так что он просто ничего вам не покажет. Если вы не включили Ambient Occlusion в настройках окружающей среды, проход AO будет пустым, даже если здесь вы его выберете.

Для сохранения времени визуализации и дискового пространства вы должны сообщить Blender’у про каждый используемый вами проход на вкладке «Слои визуализации» (которую мы впервые описали на предыдущей странице):

Комбинация
This renders everything in the image, even if it is not necessary. («The whole enchilada», so to speak). This is all the options below, blended into a single output, except those options which you have indicated should be omitted from this pass, as indicated with the camera button.
Z
The Z-depth map; how far away each pixel is from the camera. Used for depth of field (DOF). The depth map is inverse linear (1/distance) from the camera clip start.
Вектор
Направление и скорость движения объектов. Используется для векторного размытия.
Норм.
Calculates lighting and apparent geometry for a bump map (an image which is used to fake detail on an object) or for changing the apparent direction of light falling on an object.
UV
Позволяет выполнять текстурирование после визуализации. Смотрите описание узла «Разметка UV».
Туман
Выводит в проход величину тумана.
Индекс объекта
Маскирует выбранные объекты. Смотрите раздел ID Mask Node.
Цвет
Цвет материалов без затенения.
Диффуз.
Диффузное затенение материала.
Блик
Бликовые пятна.
Тень
Отбрасываемые тени. Убедитесь, что ваши источники света отбрасывают тени (положительные или отрицательные), а материалы их получают. При использовании этого прохода его следует умножить на диффузный проход.
Свечение
Проход свечения.
Ambient Occlusion
Make sure it is turned on in your environment and that Ray Tracing is enabled.
Окр. среда
Освещение от окружения.
Отражённое
Проход освещения непрямым светом.
Отражение
Отражение от зеркал и других отражающих поверхностей (к примеру, от сильно навощёного белого пола). При использовании этот проход следует добавлять к диффузному проходу.
Преломление
Преломление цветов через прозрачные полисетки. При использовании этот проход следует добавлять к диффузному проходу.

При включении прохода, в узле «Слои визуализации» волшебным образом появится соответствующий выход, что и показано на картинке выше.

Исключение проходов визуализации

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

When you enable the camera icon that is beside several of the pass options, the particular pass will be excluded from the combined pass. They will be made available separately but not included in the combined pass.

Использование проходов визуализации

Основной целью проходов визуализации является предоставление вам возможности обрабатывать различные выходы разными способами, путём построения сетей визуализации узлов. Вы можете создать множество специальных эффектов, а также значительно сэкономить на времени визуализации сложных сцен, творчески и эффективно используя эту возможность. Мы мигом покажем вам несколько примеров.

Немного информации о типичных применениях некоторых проходов также содержится в других местах:

  • Изображение: поскольку это основной продукт визуализации, всё в Blender использует его.
  • Альфа: смотрите узел «Альфа сверху» и все узлы группы «Маска».
  • Z: смотрите узел Расфокусировка.
  • Вектор: смотрите узел Векторное размытие.
  • Нормаль: смотрите узел Нормаль.

Перекрашивание теней

../../../_images/render_blender-render_settings_passes_example2.png

Let us run the Shadow buffer through a colorization node setup, then recombine it; all your shadows will be artificially colored. Lots of threads in this node setup are shown to the right, so let us walk through it. On the left is the Render Layer input node: it refers to one of the Render Layers that we have defined for our scene. In the scene, we have a reflective ball on a pedestal standing in front of a backdrop. Everything (except the ball) is gray. We use a standard four-light rig: backfill placed high, two side-fills at ground level, and a key light above and to the left of camera. Suzanne, a monkey-shaped geometry, is standing in front of the key light, so her shadow is cast into the scene on the floor. The ball casts shadows onto the backdrop and floor.

Состав выходных каналов узла «Слои визуализации» определяется кнопками, которые мы выбрали при определении нашего слоя визуализации. Два верхних просмотрщика показывают выход с изображения с альфа-каналом из выхода «Тень» и просто изображение с канала «Тень». Там, где тень тёмная, изображение в левом просмотрщике прозрачное. Мы использовали тень для вырезания части изображения.

Затем мы пропустили выход «Тень» через узел «RGB-кривые», который увеличивает синий канал на 75%; так что серая тень с RGB(40, 40, 40) стала тенью с RGB(40, 40, 40×1.75=70). Эта тень с синим оттенком показывается в нижнем просмотрщике. Теперь у нас есть два возможных варианта: узел «Альфа сверху» и узел «Смесь». Для каждого варианта:

  • Используйте теневую карту в качестве коэффициента.
  • Присоедините голубые тени к верхнему сокету.
  • Присоедините основное или базовое изображение к нижнему сокету.

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

You could just as easily swap in another image entirely; for example, the shadow map from another render layer. You can even take an image from another project entirely and use that instead (by using the Image Input node), to get a different effect. (For example, an effect similar to a Star Wars Episode One movie poster, where Anakin Skywalker already casts the shadow of Darth Vader).

Композитинг Ambient Occlusion

../../../_images/render_blender-render_settings_passes_ao.png

AO is a geometry-based dirt shader, making corners darker. It is separately enabled in the World settings and computed as a separate pass. When enabled, it has one of three Modes: Add, Subtract, Both, and a variable Energy level (which changes the intensity of the shading). The third variable is the amount of Ambient light that the material receives. If it does not receive any, then ambient occlusion does not affect it. Based on these variables, Blender computes an AO pass. If you call it out as a separate pass and wish to composite it back into your image, you will need to enable the Color and Diffuse pass as well.

Для настройки графа узлов рассмотрим пример на изображении выше.

  1. Во-первых, в зависимости от режима AO выполните одно из следующих действий: если режим AO – «Добавить»: используйте непосредственно проход AO. Если режим AO – «Вычесть»: вычислите AO - 1, а если режим AO – «Оба»: вычислите 2 × AO - 1.
  2. Умножьте выход после первого шага на уровень энергии AO.
  3. Умножьте выход после второго шага на значение окружающего освещения из материала. Если у вас есть материалы, которые получают различные уровни окружающего освещения (по умолчанию – 0.5), можно было бы создать карту окружения на основе ИД объекта.
  4. Умножьте выход после третьего шага на проход цвета.
  5. Добавьте выход после четвёртого шага к диффузному проходу.

Если присутствуют проходы теней, цветного окружающего освещения, отражённого освещения, отражений и/или преломлений, их следует добавить к диффузному проходу до добавления преобразованного прохода AO.

Векторное размытие теней

../../../_images/render_blender-render_settings_passes_vector-blurring-shadows.png

При использовании векторного размытия вместо размытия движения, движущиеся объекты будут размыты, но неподвижные (по отношению к камере) объекты размыты не будут. Тень от движущегося объекта находится на стыке этих двух вещей. В примере на изображении выше у нас есть куб, движущийся над плоскостью земли. Если мы просто пропустим комбинированный проход через «Векторное размытие», вы сможете увидеть результат, который показан в нижнем правом углу; куб размыт, но его тень – нет, поэтому изображение не выглядит реалистично.

Поэтому нам нужно отделить диффузный проход от прохода тени на полу, создав слой визуализации «Floor» («Пол»). В этом слое визуализации включены диффузный проход и проход тени, а отрисовывается только объект пол (слой 2). В другом слое визуализации («Cube» – «Куб») включены проходы Z и Вектор, а отрисовывается только куб (на слое 1). Используя узел «Размытие», мы размываем проход тени, а затем объединяем диффузный проход и размытую тень перемножением в узле «Смесь»; теперь мы имеем размытую тень на чёткой плоскости земли. Затем мы можем смешать тень с размытым по вектору объектом, чтобы получить реалистичное изображение.

Вывод

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