From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

перевод английской версии, автор - Андрей Клецков (111). Это первый вариант перевода, сразу c ходу, по-хорошему надо перечитать и исправить на литературный русский. Возможно местами не понял смысла английской версии. Также нужно отформатировать.


Radiosity рендеринг.


Описание

Давайте представим что у вас есть готовая сцена и вы хотите её отрендерить с помощью radiosity. Первая вещь которую нужно отметить это то что для radiosity вам не понадобятся светильники, вместо них понадобятся самосветящиеся объекты с параметром материала Emit большим нуля. Параметр Emit находится в панели Shaders внизу справа (Material sub-context). Обычно мягкое освещение даёт значение 0.5 или меньше.

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

Назначьте материалы как обычно. Цвет материала определяет цвет патча. Значение Emit определяет будет ли этот патч испускать свет в начале симуляции радиосити. Площадь патча учитывается при определнии количества энергии.


Проверка, есть ли в сцене источники света

проверьте значение “emitters” в консоли. Если там ноль то ничего интересного не произойдёт. Должен быть хотя бы один светящийся патч.


Включение Radiosity.

Кнока Radio на Render panel включает расчёт радиосити в процесс рендеринга. Эта опция автоматически учтёт все объекты в сцене и те у кого Emit больше нуля будут испускать свет на другоие обхекты. http://wiki.blender.org/uploads/3/30/Manual-Part-XII-RR03.png


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

Назаначая материалы, убедитесь что у них включена опция Radio в панели Links and Pipeline.

Также значение параметра Amb в каждом материале должно быть больше нуля, для того чтобы материал мог принимать свет, потому что свет радиосити считается амбиентым светом. Параметр Ambient находится в панели Shaders.

Объекты которые испускают свет должны также иметь параметр Emit больше нуля, этот параметр также находится в панели Shaders.

Так как все объекты в реальности отражают свет, рекомендуется ставить всем материалам следующие значения:

- включить параметр Radio

- Ambient > 0, обычно 0.1

- Emit > 0, обычно 0.1


Опции рендеринга

http://wiki.blender.org/index.php/File:Manual-Part-XII-RadButtons.png

Hemires

разрешение hemicube; цветные изображения используются для нахождения элементов которые видны с точки зрения обрабатываемого патча, т оесть те которые получают энергию. Hemicubes не сохранаяются, и рассчитываются для каждого патча. Величина Hemires value определяет качество, но также очень сильно влияет на время рендеринга.

Max Iterations

Максимальное количесвто итераций. Если равно нулю, радиосити будет рассчитываться пока не будет достигнута величина convergence. Рекомендуется ставить значение больше нуля, обычно больше 100.

Mult, Gamma

Цветовое пространство радиосити гораздо больше 24 бит. Когда Elements конвертируются в faces, значение их энергии конвертируется в RGB с помощью параметров Mult и Gamma. Mult - увеличивает количество энергии, Gamma - меняет контраст.

Convergence

Когла количество энергии становится меньше этого значения, просчёт радиосити для патча прекращается. Начальное значение энергии для патча учитывает также площадь патча. В процессе отражения часть энергии поглощается или уходит в окружение, если не сталкивается с объектом. В стандартной системе координат блендера типичный эмиттер (как в файлах примеров) имеет относительно небольшой размер. Поэтому перед тестом параметр convergence делится на 1000.


Примеры

Процесс рендеринга займёт больше времени чем обычно, в консоли будет счётчик. Результат будет довольно слабым, потому что радиосити не делает адаптивного улучшения! Выбедерите все меши и сделайте им сабдивайт как минимум три раза. Комнату можно даже четыре. Поставьте параметр Max Iterations немного больше, 300 или ещё больше. Попробуйте отрендерить (F12).В этот раз рендериться будет ещё больше но результат будет гораздо лучше, с мягкими тенями и цветовыми переходами.

http://wiki.blender.org/uploads/8/8a/Manual-Part-XII-RR01.png

http://wiki.blender.org/uploads/c/cf/Manual-Part-XII-RR04.png

(Radiosity rendering для низкополигональных мешей (left) и для высокополигональных мешей (right))


Заметка

С радиосити все параметры рендерера блендера остаются, то есть текстуры, кривые, поверхности и даже клонированные (дуплифрейм) объекты обрабатываются правильно.


Подсказки

Учите что нормали мешей имеют значение, свет излучается спереди.



Технические детали

в конце 80х и начале 90х радиосити было модной темой в 3д графике. Было разработано много методов, наиболее успешные из которых были основаны на “прогрессивном улучшении” с “адаптивной разбивкой”. И именно такой метод использует блендер. Для того чтобы эффективно пользоваться радиосити нужно понимать следующие принципы:


Конечность элементов. (дискретность против аналоговости)

Многоие алгоритмы подразумевают “конечность” объектов, для упрощения. Для приятного визуально (и даже научно корректного) решения, не всегда обязательно опускать на уровень атомов и молекул. Наоборот можно заменить это ограниченным количеством характерных и хорошо описанных элементов. Обычно такие решения быстро становятся стабильными и надёжными. В радиосити учитываются фейсы (патчи) вместо каждой точки поверхности модели, которых бесконечное множество.


Патчи и элементы

В решении радиосити используется два типа 3д фейсов:

- Patches - патчи

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

- Elements - элементы

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


Progressive Refinement - прогрессивное улучшение

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


The hemicube method - метод полукуба

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


Adaptive subdivision - адаптивное разбиение

Посколько размер патчей и элементов влияет на качество решения, были разработаны автоматические решения для разбиения геометрии. в блендере есть два метода автоматического разбиения:

1. разбивка патчей

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

2. разбивка элементов

Рассчитаывая энергию для элементв, и опредляя большие изменеия энергии(градиенты) в патче, элеемнты этого патча разбиваются ещё на один уровень. Результат - меньшие патчи и большее время рендера но выше качество результата, больше качество пробаботки, но возможны квадратики.


Отображение и постпроцессинг

Разбивка элементов сбалансирована, т оесть соседние элементы отличаются максимум на один уровень разбиения. это важно для приятного и правильного отображения радиосити решения в gouraud shaded mode. Обычн опосле просчёта решение состоит из тысяч маленьких элементов. С помощью фильтра и удаления двойных элементов, количество элементов может быть существенно снижено без сильного ухудшения качества. Блендер хранит информацию об энергии в floating point формате. Это даёт возможность для просчёта интересных световых решений, меняя параметры mult и gamma (то же самое что и hdr).


Радиосити для моделирования

В конечном итоге можно заменить оригинальные меши на то что использовалось для радиосити решения (кнпка Replace Meshes). На данный момент vertex colors конвертируются из “floating point” в 24 бита. Затем можно удалить радиосити данные с помощью Free Data. Новый объект получает новый материал и его можно рендарить сразу. Тут важны две настройки в материале:

- VColPaint.

Эта опция заменяет цвет материала на вертекс колор. для того чтобы увидить эти цвета на рендере нужно добавить светильники. То есть можно пользоваться обычными средствами и иметь запечённое радиосити.

- VColLight.

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



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