перевод: Sailor
Большинство визуализированых моделей, включая трассировку лучей, принимают упрощенную пространственную модель, высоко оптимизированную для света, который входит в наш 'глаз', чтобы прорисовать изображение. Можно добавить к модели отражение и тени, для достижения более реалистичного результата. Однако, отсутствует важная деталь! Когда поверхность имеет легкий рефлексивный компонент, это не только видно в нашем изображении, это также отсвечивает свет на поверхностях вокруг него. И наоборот. Фактически, свет расходится вокруг и сталкивается с окружающей средой, пока вся его энергия не будет поглощена.
В закрытых средах, энергия света генерируется ' эммиторами (emittor)' и отображается отражением или поглощением поверхности окружающей среды. Норма, по которой энергия покидает поверхность, называется 'radiosity' (излучательность) поверхности. В отличие от обычных методов рендеринга, методы излучения, сначала вычисляют взаимодействия света с окружающей средой, независимо от поля зрения. Затем, различные виды могут быть отрендерины в в реальном времени.
В Blender'е, Метод Излучения(Radiosity), больше относится к инструменту моделирования, чем к инструменту рендеринга. Это интегрированный внешний инструмент, имеет все его свойства (и ограничения).
Результат Метода Излучения это Меш-объект с цветом вершин. Объекты можно перекрасить используя опцию Vertex Paint или отрендерить, используя свойства материала "VCol Light" (цвет света) или "VCol Paint" (цвет материала). Можно даже добавить в сцену новые текстуры, дополнительные лампы и тени.
В настоящее время, система излучения не предоставляет решения для анимации. Она предназначена для статических картинок, (архитектурных) прохождений в реальном времени или для забавы, экспериментируя с симуляцией системы освещения.
В конце восьмидесятых и начале девяностых, Метод Излучения, был горячей темой в компьютерной 3D-графике. Было разработано много различных способов. Большинство успешных решений, были основаны на методе "progressive refinement"(прогрессивное усовершенствование) со схемой "adaptive subdivision"(адаптивное подразделение). (Рекомендуется для дальнейшего чтения: в Сети находится множество статей о radiosity, и почти каждая недавно выпущенная книга по 3D-графике,покрывает этот материал. Лучшая по прежнему "Computer Graphics" by Foley & van Dam et al.)
Чтобы добиться большего от Метода Излучения, который предлагает Blender, вам важно понять следующие принципы:
Метод ограничения элементов
Большинство методов компьютерной графики и симуляции, создают упрощение действительности при помощи 'ограниния элементов'. Для визуально-привлекательного ( доказано с научной точки зрения) решения, не всегда нужно погрузиться в молекулярный уровень деталей. Вместо этого, вы можете решить вашу проблему с помощью ограниченного числа типичных и хорошо-описанных элементов. Это общий факт, что такие системы быстро становятся устойчивыми и надежными решениями.
Radiosity - типичный пример метода ограниченных элементов.
Патчи и Элементы
В области Метода Излучения, мы различаем два типа трехмерных поверхностей:
Патчи (Patches). Это треугольники или квадраты, которые могут посылать энергию. Для быстрого результата, важно чтобы патчей было так можно меньше. Но, так как энергия распространяется от центра патча, размер должен быть достаточно маленький, чтобы получилось реалистичное распределение энергии. (Например, когда маленький объект расположен над центром патча, вся энергия, которую посылает патч, будет затенена этим объектом).
Элементы (Elements)Это треугольники или квадраты, которые используются для приема энергии. Каждый элемент связан с патчем. Фактически, патчи разделяются на множество маленьких элементов. Когда элемент получает энергию, он частично ее поглощает (в зависимости от цвета патча), а остаток передает патчу. Так как элементы это те же грани, которые мы отображаем, важно чтобы их было как можно меньше, чтобы выразить тонкие, теневые границы.
Прогрессивное Усовершенствование
Этот метод начинается с исследованием всех доступных патчей. Выбирается патч с наибольшим количеством 'нерасстрелянной' энергии, чтобы выстрелить ее всю в окружающую среду. Элементы, в окружающей среде, получают эту энергию и добавляют ее к связанным с ними патчами, с 'нерастрелянной' энергией. Затем процесс начинается снова, для патчей, которые СЕЙЧАС имеют больше нерасстрелянной энергии. Это продолжается для всех патчей до тех пор, пока вся энергия не закончится или пока 'нерасстрелянная' энергия не опустится ниже определенного значения.
Метод полукуба(hemicube)
При помощи 'полукуба', вычисляется сколько энергии каждый патч дает элементу. Расположенный точно в центре патча, полукуб состоит из 5-ти маленьких изображений окружающей среды. Для каждого пикселя в этих изображениях, определенный видимый элемент кодируется цветом, и таким образом, можно рассчитать переданное количество энергии. При помощи специализированных аппаратных средств, метод полукуб, может быть значительно ускорен. Однако в Blender'е, вычисления с помощью 'полукуба', производятся "программным способом". Этот метод, это фактически упрощенная и оптимизированая 'реальная' формула метода излучения (дифференцирование форм-фактора). По этой причине, разрешение 'полукуба' (число пикселей в его изображениях) очень важно, чтобы предотвратить артефакты алиасинга ("ступеньки").
Адаптивное подразделение
Так как подразделение Меша определяет качество метода излучения, чтобы определить оптимальный размер патчей и элементов, были разработаны автоматические схемы подразделения. Blender имеет два автоматических метода подразделения:
1.Подраделенные-'стреляющие' патчи. Выстреливая энергию в окружающую среду, и сравнивая значения 'полукуба' с актуальным математическим значением 'форм-фактора', могут быть обнаружены ошибки, что указывает на потребность дальнейшего подразделении патча. В результате - маленькие патчи и требуется больше времени, но, более высокий реализм.
2. Подраделенные-'стреляющие' элементы. Выстреливая энергию в окружающую среду , и обнаруживая высокие изменения энергии (частоты) внутри патча, элементы этого патча, подразделяются на еще один дополнительный уровень. В результате - маленькие элементы, процесс занимает больше времени, и возможно больше алиасинга, но очень высокий уровень деталей.
Отображение и пост-обработка
Подразделение элементов в Blender'е 'сбалансировано', а это означает, что каждый элемент отличается, максимум на '1' уровень подразделения с его соседними. Это важно для красивого и правильного отображения затенения граней методом Излучения. Обычно после процесса, результат состоит из тысяч маленьких элементов. После их фильтрации и удаления 'дублированных', число элементов может быть заметно уменьшено, без потери качества Метода Излучения. Blender хранит значения энергии, как значение 'с плавающей точкой'. Это дает возможность настраивать параметры для эффективного расположения освещения, изменяя значения стандартного множителя и гаммы.
Визуализация(Rendering) и интегрирование в Blender
На заключительном шаге, можно заменить первоначальные Меши на результат Метода Излучения (кнопка "Replace Meshes" на панели Radio Tool). В этот момент, цвета вершин преобразуются со значения 'с плавающей точкой' в 24 битовый RGB-формат. Старые Меш-Объекты удаляются и заменяются на один или более новых Меш-Объекта. Затем, вы можете удалить данные Метода Излучения при помощи кнопки " Free Data ". Новые Объекты получают заданный по умолчанию Материал, который позволяет непосредственный рендеринг. Есть два важных параметра для работы с цветом вершин, в настройках Материала, F5 (панель Material):
VCol Paint Эта опция обрабатывает цвета вершин, как замена для нормального значения RGB в Материале. Вам необходимо добавить освещение, чтобы увидеть цвета Метода Излучения. Фактически, вы можете использовать освещение и тени в Blender'е как обычно, и по-прежнему, при рендеринге, будет виден результат Метода Излучения.
VCol Light Цвет вершин добавляется к свету при рендеринге. Вы увидите результат, даже без ламп в сцене. Этой опцией, цвета вершин умножаются на RGB цвет Материала. Это позволяет подстраивать 'свет Метода Излучения', при окончательном рендеринге.
Как и все в Blender'е, настройки Метода Излучения, выполнены в виде блоков данных (datablock). Блоки подключены к сцене, и каждая сцена в Blender'е, может иметь свои 'блоки данных' Излучения. Используйте эту особенность, чтобы разделить сложную сцену, на сцены с независимыми параметрами Radiosity.