Тестовая сцена и настройки рендера

Материал из BestWay wiki
Перейти к: навигация, поиск

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

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Для корректного рендера lightmap нужно, чтобы Ambient сцены был установлен в черный цвет (иначе не получится абсолютной тени). Цвет background нужно установить в белый.

Также нам понадобится источник сферического света SkyLight (белый!). Его настройки следующие:

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Далее настраиваем материал для объекта:

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения


Обращаю внимание на то, что сила блика должна быть 0, диффузный цвет – белый, а сам материал – 2-сторонний, чтобы при расчете теней замкнутые объемы (колонны, стволы пушек и т.п.) рендерились как сплошное тело, а не тонкая скорлупа.

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

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


Итак, мы имеем некоторую раскладку текстуры. В идеале все кластеры раскладки для lightmap – уникальные. Но одинаковые части модели могут быть положены на одно и то же место в раскладке. Ограничение следующее: части, одинаковые геометрически, но разные по освещенности, не должны накладываться друг на друга, иначе результат будет некорректным. Например, верх и низ кубика, лежащего на плоскости, должны лежать в разных местах раскладки, а вот боковые стороны могут быть совмещены, если нет разницы в освещении этих сторон. Для теста текстурные координаты объекта были развернуты автоматически процедурой flatten.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения


Теперь собственно настройки рендера. Сначала нужно включить LightTracer, который расчитает наше глобальное освещение. Эти настройки – в меню rendering/advanced lighting/light tracer:

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Из вышеуказанных параметров обратите внимание на rays/sample – фактически кол-во фотонов на единицу площади текстуры: чем выше, тем чище освещенная поверхность и медленнее рендеринг, но на малых значениях (ниже 100) на равномерно освещенной поверхности возникнут пятна. Приемлемое качество достигается при rays/sample > 300. Filter size – это размер сглаживающего фильтра, устраняющего «ступеньки» и т.п. артефакты на готовой текстуре. Размер задается в пикселях. 3.0 вполне достаточно для хорошего качества текстуры 1024*1024. Cone angle – предельный угол отражения падающих лучей от поверхности объекта. Практика показывает, что угол больше 45 не дает визуального улучшения качества, но только замедляет расчет. Bounces – кол-во отражений света от поверхности. Если он равен 0, то объект будет освещен только падающими лучами от источника света, без расчета рефлексов от самого объекта. Чем выше этот параметр, тем больше отражений фотонов расчитывается и тем больше время расчета (на каждую единицу bounces приходится время, равное полному расчету текстуры, так что нежелательно задавать его больше 2 – особого прироста качества не будет, только потеря времени). Все остальные параметры нужно задать такими, какие указаны на рисунке.

После выполненных операций нужно задать параметры расчета текстуры в меню rendering/render to texture:

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Важно! Для расчета текстуры объект всегда должен быть выделен! В general settings нужно задать путь, по которому будет записана расчитанная текстура lightmap.

Параметр padding отвечает за следующее: каждый кластер раскладки окружается «бордюром» шириной в указанное кол-во пикселей (для текстуры 1024*1024 достаточно 8, для меньшей – от 4 до 6). Для чего это нужно? При отдалении от объекта, когда включаются mip-уровни текстуры, работает фильтрация пикселей и значение цвета каждого из них усредняется по определенной области соседей. При этом, если цвет текстуры внутри кластера сильно отличается от фона текстуры (а это практически всегда), границы кластеров проявятся в виде темных или светлых полос. Padding как раз устраняет эту проблему.Projection mapping нужно выключить.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

В Mapping coordinates нужно указать, что необходимо использовать существующую раскладку и указать текстурный канал, из которого брать эту раскладку. Далее по кнопке Add задается рендер компонента «complete map», указывается имя и расширение текстуры lightmap, которая будет записана по указанному ранее пути. Также задается размер текстуры (она всегда квадратная, но при необходимости можно в photoshop изменить пропорции, главное рендерить с размером, равным наибольшей стороне текстуры). Если в сцене присутствуют дополнительные источники света, отбрасывающие тень, нужно включить флажок «shadows».

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Последний блок параметров расчета текстуры указывает на то, что 3ds max должен оставить материал объекта без изменений. Далее нажимаем кнопку «render» и расчитываем текстуру. Для проверки можно назначить объекту материал, в качестве текстуры к которому указать полученный lightmap. Ниже указаны параметры материала и картинка, получаемая во вьюпорте 3dsmax.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения