19579
0
14/08/2023

Что такое объект Corona Volume Grid?

Corona Volume Grid позволяет вам рендерить объекты, которые действительно объемные и основаны на 3D сетке, а не на сетках с использованием Corona Volume Mtl, который всегда требует некоторой поверхности, состоящей из полигонов для отображения объема.

Типичные области применения сетки Corona Volume Grid включают:

  • Fire
  • Explosions
  • Smoke
  • Clouds
  • Steam
  • Objects which are not possible or difficult to render when using classic polygonal mesh

Где найти?

Corona Volume Grid можно создать, перейдя в меню Corona > Corona Volume Grid:

Какие форматы поддерживаются?

Поддерживается только формат OpenVDB.vdb

Corona Volume Grid также поддерживает анимированные файлы OpenVDB (.vdb sequences).

Какие элементы управления доступны?

Наиболее полезные элементы управления включают:

Объект(Object)

Опции Object управляют тем, как объект Volume Grid будет
отображаться на видовом экране, и показывают информацию из моделирования,
например, количество ячеек и плотность сетки:

Объект - Выбрать файлы (Object - Select files)

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

Объект - Перезагрузить с диска(Object - Reload from disk)

Используйте эту кнопку, чтобы заставить объект Corona Volume Grid перезагрузить файл/последовательность с диска.

Объект - Анимация - Включить анимацию(Object - Animation - Enable animation)

Эта опция включает/выключает чтение анимированной последовательности VDB.

Объект - Анимация – Режим(Object - Animation - Mode)

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

  • Повтор(Repeat) - Анимация VDB будет воспроизводиться как цикл.
  • Пинг-понг(Ping Pong) - При использовании этой опции анимация VDB будет воспроизводиться вперед, а когда она достигнет конца, то продолжит воспроизведение анимации, но так, как будто она идет назад.
  • Заморозить вне диапазона(Freeze out of range) - при выборе этой опции, как только анимация VDB достигнет конца, она будет заморожена на последнем кадре.
  • Скрыть вне диапазона(Hide out of Range) - При выборе этой опции, как только анимация VDB достигнет конца, она будет скрыта после последнего кадра.

Объект - Анимация - Смещение кадра (Object - Animation - Frame offset)

Используйте этот параметр для смещения времени начала анимации VDB (можно использовать как положительные, так и отрицательные значения).

Объект - Анимация - Множитель скорости (Object - Animation - Speed multiplier)

Использование этой опции ускоряет или замедляет воспроизведение анимации VDB.

Объект - Анимация - Загрузить ближайший, если отсутствует (Object - Animation - Load nearest if missing)

При использовании этой опции, если файл из последовательности анимации VDB отсутствует, будет сделана попытка загрузить ближайший доступный файл для продолжения воспроизведения. Например, если последовательность анимации VDB состоит из 10 кадров, а 4-й кадр отсутствует, эта опция будет считывать 5-й кадр как 4-й, а затем будет считывать 5-й кадр как обычно.

Объект - Отображение видового экрана – Тип (Object - Viewport display - Type)

Использовать просмотр видового экрана в виде ограничивающей рамки или облака точек для файла OpenVDB.

Внимание: просмотр облака точек может быть медленным при
загрузке большого файла!

Тип отображения видового экрана = Граничная область (Bounding
Box)

Тип отображения видового экрана = Облако точек (Point Cloud)

Объект - Отображение видового экрана – Качество (Object - Viewport display - Quality)

Этот параметр определяет плотность предварительного просмотра облака точек.

Внимание: Просмотр облака точек может быть медленным, если загружен большой файл, а процент качества увеличен (для большинства случаев рекомендуется не превышать 25%)

Качество отображения во вьюпорте = 5%

Качество отображения во вьюпорте = 100%

Рендеринг

Опции Rendering управляют тем, как будет обработан объект сетки объемов, чтобы отобразить его точно или нет.

Рендеринг – Интерполяция (Rendering - Interpolation)

Эта опция позволяет определить соотношение скорости и качества. Это похоже на фильтрацию, используемую во многих приложениях при работе с 2D текстурами.

  • "None" - Эта опция обеспечивает наиболее быстрый рендеринг, но самое низкое качество с возможностью "пикселированного" или "блочного" вида сетки.
  • "Linear" - Эта опция является компромиссом между качеством и скоростью рендеринга, и этот режим используется по умолчанию.
  • "Quadratic" - Этот режим обеспечивает наилучшее качество, но за счет времени рендеринга.

Интерполяция рендеринга = None

Интерполяция рендеринга = Linear

Рендеринг - Размер шага (Rendering - Step size)

Размер шага марширования лучей. Определяет, сколько "объемных шагов" может быть использовано для рендеринга объекта. Большие значения означают более быстрый рендеринг, больше шума и большую вероятность появления артефактов. Меньшие значения означают лучшее качество, но более медленный рендеринг. Чтобы получить приемлемое время рендеринга, значение размера шага следует установить как можно выше, пока не будут заметны артефакты марширования лучей ("кусочки"( slices), видимые внутри объекта).

Интерполяция рендера = Linear
Размер шага = 0,1

Интерполяция рендера = Linear
Размер шага = 10

Рендеринг - Перевернуть рамку (Rendering - Flip frame)

Переворачивает оси Y и Z файла OpenVDB, в результате чего объект поворачивается на 90 градусов. Этот параметр следует использовать, если при загрузке объект оказывается неправильно повернутым.

Flip Frame = Disabled

Flip Frame = Enabled

Рендеринг - Размытие движения и интерполяция кадров

Определяет, как будет вычисляться размытие движения.

Рендеринг - Режим

  • Disabled - отключает размытие движения.
  • Simple - простая интерполяция между двумя кадрами OpenVDB - может привести к артефактам.
  • Velocity-based - плавная интерполяция на основе канала скорости файла OpenVDB - требуется выбрать правильный канал скорости.

Рендеринг - Скорость

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

  • Множитель - Сила эффекта размытия движения (более высокие значения означают более выраженное размытие движения).

Эмиссия

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

Эмиссия отключена (Emission Disabled)
Поглощение Включено (Absorption Enabled)
Рассеяние включено (Scattering Enabled)

Эмиссия включена (Emission Enabled)
Поглощение включено (Absorption Enabled)
Рассеяние Включено (Scattering Enabled)

Эмиссия - канал

Выбирает канал (сетку), присутствующий в файле OpenVDB, который будет использоваться для эмиссии среды. Обычно его следует установить на "температура"(temperature), чтобы получить такие результаты, как огонь или взрыв.

Существует также дополнительный канал под названием "константа"(constant) - это один сплошной цвет, который применяется ко всей граничной области объема. В случае использования режима "константа"(constant) для эмиссии, вся граница объекта сетки объема начнет светиться.

Канал "константа"(Constant) полезен, например, для рассеивания света при создании дыма - вы можете установить постоянный цвет рассеивания, чтобы иметь одинаковый тип рассеивания во всей среде. Тогда его толщина будет контролироваться только свойствами поглощения.

Канал эмиссии установлен на "Temperature"

Канал эмиссии установлен на "Constant"

Эмиссия - Масштаб

Делает общую эмиссию более или менее интенсивной (более высокие значения означают более высокую интенсивность).

Масштаб эмиссии установлен на 1

Масштаб эмиссии установлен на 0,1

Эмиссия – Оттенок (Tint)

Этот цвет применяется к эмиссии (можно рассматривать его как своего рода фильтр).

Цвет оттенка эмиссии: белый Цвет

оттенка эмиссии: синий (H=228, S=100, V=100)

Эмиссия – карта (Map)

Это маска, используемая для эмиссии. Обратите внимание, что маска применяется в трехмерном пространстве, поэтому добавление карты шума приведет к тому, что к объекту будет применена трехмерная маска шума. Использование режима пространства "Текстура" или "UV(2D)" не поддерживается.

Карта шума установлена для работы в пространстве объекта Карта шума установлена для работы в пространстве текстуры или UV(2D) (не поддерживается)

Эмиссия - Режим

Определяет, как интерпретируются данные текущего выбранного канала:

  • Raw data - используются исходные цвет и интенсивность, которые хранятся в файле VDB. Затем на него влияют параметры масштабирования и оттенка.
  • Channel mapping - используются пользовательские настройки из инструмента "Сопоставление цветов каналов". Пожалуйста, прокрутите вниз до раздела " Как использовать отображение цвета канала ", чтобы узнать об этом подробнее.
  • Blackbody - моделирует цветовое излучение черного тела при заданной температуре Кельвина (полезно для моделирования пожаров).

Поглощение(Absorption)

Определяет, как далеко свет может пройти внутри объекта, прежде чем он будет полностью поглощен. Для получения лучших результатов включите свойство Рассеяние.

Поглощение - Канал

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

Используемый канал: "Константа"

Используемый канал: обычно "Дым" или "Плотность".

Поглощение - Масштаб

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

Эмиссия = отключена
Шкала поглощения = 0,5

Выброс = отключен
Шкала поглощения =5

Поглощение - оттенок

Этот цвет применяется к поглощению (можно рассматривать его как своего рода фильтр).

Эмиссия = Выключено
Оттенок поглощения = Белый (по умолчанию)
Рассеяние = Включено

Эмиссия = Выключено
Оттенок поглощения = Синий (H=200, S=100, V=100)
Рассеяние = Включено

Поглощение - карта (шейдер) (Map (Shader))

Это маска, используемая для поглощения. Обратите внимание, что маска применяется в трехмерном пространстве, поэтому добавление карты шума приведет к тому, что к объекту будет применена трехмерная маска шума. Использование режима пространства " Texture " или "UV(2D)" не поддерживается.

Absorption Shader = Шум, работающий в пространстве объекта. Absorption Shader = Шум, работающий в пространстве Texture или UV(2D). (Не поддерживается)

Поглощение - Включить отображение цвета канала (Absorption - Enable Channel color mapping)

Использует пользовательские настройки из инструмента "Channel color mapping". Пожалуйста, прокрутите вниз раздел " Как использовать отображение цвета канала ", чтобы узнать о нем больше.

Рассеяние

Определяет, как свет рассеивается внутри объема.

Рассеяние - Канал

Выбирает канал (сетку), присутствующий в файле OpenVDB, который будет использоваться для рассеяния. Обычно следует установить значение " constant", чтобы вся среда рассеивала свет одинаково в тех областях, где поглощение позволяет это сделать, но другие каналы тоже могут работать хорошо, в зависимости от потребностей.

Эмиссия = Выключено
Поглощение = Включено
Рассеяние = отключено
Канал рассеяния = постоянный

Эмиссия = отключена
Поглощение = Включено
Рассеяние = Включено
Канал рассеяния = Постоянный

Рассеяние - Масштаб

Позволяет объекту больше или меньше рассеивать свет (более высокие значения означают большее рассеивание и более яркий общий цвет).

Эмиссия = отключено
Поглощение = Включено
Шкала рассеивания = 0,1

Эмиссия = Выключено
Поглощение = Включено
Шкала рассеивания = 1

Рассеяние - Оттенок

Этот цвет применяется к рассеиванию (можно рассматривать его как своего рода фильтр).

Эмиссия = Выключено
Поглощение = Включено
Оттенок рассеивания = Белый (по умолчанию)

Эмиссия = Выключено
Поглощение = включено
Оттенок рассеивания = синий (H=200, S=70, V=100)

Рассеяние - Карта (шейдер)

Это маска, используемая для поглощения. Обратите внимание, что маска применяется в трехмерном пространстве, поэтому добавление карты шума приведет к тому, что к объекту будет применена трехмерная маска шума.

Шейдер рассеивания = шум, работающий в пространстве объекта.

Scattering Shader = Шум, работающий в пространстве текстур или UV(2D). (Не поддерживается)

Рассеивание - Направленность

Этот параметр используется для настройки направленности рассеивания. Значение 0 (ноль) создает изотропное ("диффузное") рассеивание. Положительные значения приводят к рассеянию вперед. Отрицательные значения приводят к рассеиванию назад. Значение по умолчанию 0 подходит для большинства сред, за исключением облаков, где большие положительные числа создадут эффект "серебряной подкладки".

Эмиссия = отключено
Поглощение = Включено
Масштаб рассеяния = 1
Направленность рассеивания = -0,7

Эмиссия = Выключено
Поглощение = Включено
Шкала рассеяния = 1
Направленность рассеяния = 0,7

Рассеяние - только одиночный отскок

Эта опция должна быть включена, если ее отключение не является абсолютно необходимым. Если опция включена, в среде будет рассеиваться только один отскок (прямое освещение). Это приводит к смещенному (более темному), но гораздо более быстрому рендерингу.

Полезно, например, для рендеринга "крестных лучей" внутри среды.

Только одиночный отскок = Включено.

Только одиночный отскок = отключено.

Рассеяние - Включить отображение цвета канала

Использует пользовательские настройки из инструмента "Channel color mapping". Пожалуйста, прокрутите вниз раздел " How to use channel color mapping", чтобы узнать о нем больше.

Примеры

Пример 1

Мы хотим добиться темного, густого дыма, который не излучает и не рассеивает свет:

  • Излучение и рассеивание отключены (поскольку они нам не нужны).
  • Поглощение включено и установлено на высокую шкалу.

Пример 2

Мы хотим добиться интенсивного огня с темным, тонким дымом, который рассеивает немного света:

  • Эмиссия включена, так как мы хотим отрисовать излучающую часть огня. Шкала эмиссии установлена на 5, чтобы усилить интенсивность.
  • Для излучения выбран режим черного тела, так как мы визуализируем реалистичный огонь.
  • Поглощение включено для рендеринга дыма; однако его масштаб уменьшен до 0,5, так как мы хотим, чтобы дым был тонким.
  • Рассеяние включено, а масштаб установлен на 0,05 для слабого эффекта рассеяния.

Пример 3

Мы хотим получить пар:

  • Для этого примера нам не нужна эмиссия, поэтому она отключена.
  • Поглощение включено, но его масштаб уменьшен до 0,005, чтобы сделать пар прозрачным.
  • Шкала рассеивания установлена на 1, чтобы пар выглядел ярче.

Пример 4

Мы хотим добиться "волшебного" огня с разноцветным дымом:

  • Мы используем эмиссию, поглощение и рассеивание.
  • Чтобы добиться фиолетового оттенка дыма, мы используем пользовательский оттенок рассеивания.
  • Для красочного огня мы используем опцию отображения цвета канала для эмиссии (более подробную информацию см. ниже).

Как использовать инструмент отображения цвета канала?

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

  1. Сначала плавающие значения масштабируются с помощью ">Input scale", чтобы уложиться в [0,1]. Вы можете использовать кнопку "Auto-scale" для автоматического расчета входного масштаба.
  2. Плавающее значение отображается на цвет с помощью цветового градиента. Самый левый цвет градиента определяет, как значение 0 отображается в цвет, а самый правый цвет определяет, как значение 1 отображается в цвет.
  3. Кривая масштабирует цвет, вычисленный по градиенту. Обратите внимание, что на вход кривой подается не цвет из градиента, а "input-scaled" плавающее значение из канала (например, результат операции, указанной в пункте A).
  4. Окончательный цвет вычисляется путем обратного масштабирования цвета с использованием обратной величины "Input scaling".

Предлагаемый рабочий процесс (на основе эмиссии):

  1. Поместите объект Corona Volume Grid и загрузите файл VDB во вкладку Object.
  2. Включите эмиссию и установите канал на температуру.
  3. Установите режим эмиссии на "Channel mapping".
  4. Откройте развертку "Channel color mapping".
  5. Нажмите кнопку "Auto-scale" для автоматической настройки значения масштаба.
  6. Установите нужные цвета градиента:
    • Самый левый цвет представляет собой цвет самых темных элементов объемного эффекта. (в случае использования температурного канала это означает самую низкую температуру, поэтому все области за пределами видимого огня).
    • Самый правый цвет представляет цвет самых ярких элементов объемного эффекта. (в случае использования температурного канала это означает самую высокую температуру).
    • Все значения между ними представляют собой переход между крайними значениями интенсивности (левым и крайним правым).
    • Вы можете добавить новый цвет, щелкнув прямо под полосой градиента, а также удалить любой цвет, перетащив нужный цвет из области градиента.
  7. На данном этапе вы можете настроить кривую в соответствии с вашими потребностями:
    Перемещение левой нижней точки к верхней части графика сделает самые темные цвета более интенсивными.
    Перемещение левой нижней точки к правой стороне графика "отрежет" некоторые из самых темных цветов, сделав их прозрачными.

    Примечание: это полезно для того, чтобы избавиться от видимой при рендеринге формы ограничительной рамки объемной сетки.
    Перемещение правой верхней точки к нижней части графика
    сделает весь эффект менее интенсивным.
    Перемещение правой верхней точки к левой стороне графика сделает весь эффект более интенсивным (обратите внимание, что из-за этого эффект часто может выглядеть перегоревшим).
    Вы также можете добавлять точки в других местах кривой, чтобы контролировать промежуточные значения, и переключаться между типами точек "Spline", "Cubic" и "Linear".
    • Чтобы добавить новую точку на кривую, просто удерживайте нажатой клавишу Control на клавиатуре, одновременно щелкая левой кнопкой мыши на любом участке кривой.
    • Чтобы удалить любую добавленную точку, просто выделите точку и нажмите клавишу delete на клавиатуре.
    • Чтобы изменить любой тип точки с линейного, нажмите на стрелку в левом верхнем углу графика и перейдите в список "Interpolation", чтобы выбрать нужный тип точки.
    На данном этапе регулировка значения "Входного масштабирования" сделает общий эффект более или менее интенсивным.
  8. Если вы настроите параметр "Масштаб выброса", он будет работать аналогично "Масштабу ввода" в инструменте отображения цвета канала, но будет регулировать интенсивность эффекта после настройки общего цвета и видимости (например, сделает огонь ярче).

Как добиться максимально быстрого рендеринга и наилучшего качества?

Вот некоторые рекомендации по настройке объекта Corona Volume Grid для наилучшего соотношения времени рендеринга и качества:

  • Если вы рендерите только объект Volume Grid на сплошном фоне (без окружающего пространства, например, интерьера или экстерьера), перейдите в Render Settings > Corona > Performance и уменьшите значение параметра GI vs. AA с 16 по умолчанию до меньшего значения (например, 4, но не ниже 2). Это ускорит рендеринг объекта Volume Grid, но может внести шум в другие части изображения, например, глянцевые отражения или преломления.
  • Поскольку некоторые части объемной сетки могут в основном >полагаться на прямое освещение (это заметно при использовании поглощения и рассеяния), возможно, имеет смысл увеличить значение Light Samples Multiplier, расположенное в Render Settings > Corona > Performance. Это улучшит качество света, проникающего в светорассеивающую часть объекта (например, дым, пар и т.д.).
  • В настройках объекта Corona Volume Grid Object перейдите на вкладку Rendering и установите размер шага на максимально возможное значение. Слишком низкие значения будут рендериться очень медленно. Слишком высокие значения приведут к появлению артефактов марширования лучей ("срезы" или "кубы", видимые в объекте) и сделают объект нереально прозрачным.
  • Объекты с более низкой шкалой излучения всегда будут визуализироваться быстрее, так как генерируется меньше света, что приводит к меньшему шуму.
  • Объекты с более низкой шкалой рассеивания (более темный цвет) всегда будут визуализироваться быстрее. Соответственно, яркое рассеяние (например, цвет установлен на чисто белый) будет визуализироваться медленнее.
  • Всегда используйте опцию "Только одиночный отскок" на вкладке "Рассеяние" в свойствах объекта Volume Grid. Отключайте эту опцию только в случае крайней необходимости. Ее включение обычно дает лишь небольшое улучшение качества и делает рендеринг намного медленнее.

Разве элементы управления Corona Volume Grid не похожи на те, что находятся в Corona Volume Mtl?

Да, элементы управления, доступные в объекте Corona Volume Grid, очень похожи на те, что находятся в материале Corona Volume, и они дают очень похожие результаты. Если вы знакомы с материалом Corona Volume и эффектами SSS в Corona, то объемные сетки не должны стать для вас проблемой

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

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

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