7388
0
14/09/2021

Corona Distance Map позволяет создавать "умные" материалы, которые знают, на каком расстоянии они находятся от объектов в сцене. С ее помощью можно добавить волны вокруг береговой линии, износ в местах соприкосновения объектов, грязь и шум под подоконниками и многое другое.

Как это работает?

Corona Distance Map применяет различные цвета к материалу в зависимости от расстояния от одного объекта до другого. Затем эти цвета можно сопоставить с различными свойствами материала или объекта, такими как непрозрачность, смещение или распределение рассеивания, или использовать в качестве масок, как и любую другую карту.

Corona Distance Map может использоваться как с 2D текстурами (такими как растровые или процедурные карты на поверхности объекта), так и с 3D объемами (такими как сетки OpenVDB, загруженные с помощью CoronaVolumeGrid, или объекты, использующие материал Corona Volume).

Чем это отличается от Corona AO map?

Есть несколько основных отличий:

  • Corona Distance map не может быть использована в пределах одного объекта.
    Карта CoronaAO может использоваться для окрашивания различных частей одного объекта или нескольких объектов на основе их расстояния друг от друга (выпуклые или вогнутые области). Карта CoronaDistance может использоваться только на основе расстояния между двумя или более различными объектами.
  • CoronaAO является лучевой трассировкой, поэтому она вычисляется только во время фактического рендеринга.
    Это означает, что карту CoronaAO нельзя использовать, например, в качестве карты распределения для рассеивания объектов с помощью CoronaScatter, в качестве карты смещения или карты неровностей. В таких случаях можно использовать CoronaDistance, которая будет обновляться в реальном времени, даже во вьюпорте.
  • Качество карты CoronaAO будет постепенно улучшаться во время рендеринга, поэтому сначала она будет казаться шумной, а затем постепенно станет бесшумной с каждым последующим проходом рендеринга. CoronaDistance вычисляется за один проход, и сразу же рендерится без шума.

Примеры

Карта Corona Distance чрезвычайно универсальна, и может быть использована в различных случаях в зависимости от потребностей. Вот лишь несколько примеров идей, которые можно развивать дальше:

Износ объектов, расположенных близко друг к другу:

Настройка материала:

Карта Noise используется для изменения масштаба расстояния, создавая текстуру "грязи". Карта Output используется для увеличения контрастности карты CoronaDistance.

Пена вблизи берега:

Настройка материала:

Только одна карта CoronaDistance используется для окрашивания объекта водной поверхности в зависимости от расстояния до берега.

Создание 3D волн вокруг объектов в песке или воде:

Настройка материала:

Карта CoronaDistance вставляется в слот "Source Map" карты Gradient Ramp. Таким образом, "волны", созданные с помощью Gradient Ramp, будут создавать круговые формы вокруг объекта.

Силовое поле, которое открывается, когда объект приближается к нему:

Настройка материала:

В этом случае непрозрачность материала силового поля контролируется картой CoronaDistance, которая становится черной, когда выбранный объект находится близко к ней.

Булинг в режиме рендеринга с очень сложными формами:

Это можно использовать для рендеринга сложных булевых форм без каких-либо артефактов.

Объемный туман вблизи земли:

Настройка материала:

Смещенная плоскость земли находится внутри коробки. К коробке применен материал CoronaVolume с включенным режимом "внутренний объем". На карте CoronaDistance плоскость земли выбрана в качестве объекта "расстояние от", а затем подключена к слоту Absorption материала CoronaVolume. Это означает, что объем будет плотным ближе к наземному объекту (черный цвет) и более тонким дальше от него (белый цвет), пока не станет полностью прозрачным. Кроме того, карта шума подключается к шкале расстояний материала CoronaDistance для изменения плотности тумана.

"Лазер" разрезает объемы:

В этом примере в сцене присутствует объект CoronaVolumeGrid с загруженным файлом OpenVDB. Здесь используется тот же метод, что и в примере с "булеаном" выше - есть невидимый объект box, прорезающий объем. Карта CoronaDistance затем используется в слоте Absorption объекта CoronaVolumeGrid, чтобы определить, какие области должны быть прозрачными (белыми), а какие - сплошными (черными). Кроме того, излучение CoronaVolumeGrid также отображается с помощью карты CoronaDistance - таким образом, она излучает свет вблизи области, где невидимый бокс пересекается с объемом.


Более подробно ознакомиться со всеми курсами образовательного проекта CGBandit вы можете здесь.

Перевод статьи осуществлен образовательным проектом CGBandit c официального сайта coronarenderer.

Комментарии (0)