image

Новости
Уроки и статьи
Загрузка
Обо мне
Ссылки

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

Так как Ментал Рей при бейкание каждый раз испускает фотоны для каждого объекта и каждого материала лучше будет временно скомбайнить все объекты в один и посчитать освещение. После чего вернуть все как было. При желании можно пересчитать освещение для каждого объекта в отдельности.

Выделяем нужные объекты и вызываем меню бейкинга Lighting/Shading->Batch Bake (mental ray) или Edit Polygons->Colors->Prelight (mental ray).

Objects to Bake - выберите из этого списка бейкать все объекты или только выделенные.

Skip objects in initialBakeSets - если вы выбирете All из меню Objects to Bake, то все объекты которые вы не назначили на initial bake-sets будут участвовать в бейкинге.

Bake To - выберите куда бейкать в вертексы или текстуру. По умолчанию если вы выбираете Lighting/Shading->Batch Bake (mental ray) то стоит Texture, а если Polygons->Colors->Prelight (mental ray), то Vertices.

Color Mode - позволяет mental ray for Maya бейкать только освещение или цвет поверхности с освещением.

Bake Shadows - если выбрано, то тени участвуют в бейкинге.

Orthogonal Reflection - Когда эта опция включена, то все отраженные лучи становятся ортоганальными по отношению к поверхности бейкания и больше не являются реальными лучами отражения, а являются лучами параллельными нормали поверхности. Но в результате текстура или цвет вертексов потом выразительнее смотрятся с любой стороны. Может использоваться для построения карты отражения(enviroment map) и тп.
Если отключена, то считается реальное отражение основанное на положении камеры.

Use Face Normals - можно выбрать использовать нормали фейсов или интерполированные нормали вертексов.

Normal Direction - указывает на каком направлении нормалей объекта будет основано бейкание.

Camera - используемая камера.

После вызова этого меню создаются два сета initialVertexBakeSet и initialTextureBakeSet где можно посмотреть некоторые настройки.

Bake to vertices

Shared Vertices - если включено, то результат записывается для каждого вертекса, а если нет, то для каждого вертекс фейса.

На самом деле действие этой опции я не заметил.

Bake Alpha - включите если вы хотите забейкать альфа канал, потом еще нужно выбрать Alpha Mode.

Alpha Mode - если включено Bake Alpha, то указыват метод просчета альфы.

Scale Rgba - скалирует значение вертекс колора на это значение.

Clamp Min, Clamp Max - обрезает значение вертекс колора ниже Min и выше Max.

Color Blending - метод наложения вертекс колора на предыдущий.

Есть особенность при просчете освещения в вертексы. Если включить Final Gathering то получается забавная картина. Ментал почему то не сглаживает вертекс колор, а хранит цвет для каждого вертекс фейса свой, причем цвет получается разный.

image

Не иначе как глюк.

Причем это относится только к Final Gathering'у, все проходит при его отключении. Можно написать скрипт, который бы усреднял значения цвета вертекс фейсов. В моем случае скрипт получился достаточно медленный и в итоге я решил отказаться от Final Gathering'а и освещать одними фотонами.

Кроме того, был замечен еще один артефакт при включенном Final Gathering. В углах, которые меньше или равны 90 градусов появляются резкие затенения.

image

По всей видимости, это происходит, потому что Ментал Рей испускает Final Gathering лучи из каждого вертекса (предположительно), при этом смотрит в какую сторону повернута нормаль вертекса. В случае куба нормаль вертекса будет проходить через другую грань куба, поэтому и появляются затенения.Тоже самое произойдет, если нормаль будет направлена наружу из объекта. Поэтому надо следить, чтобы все нормали вертексов смотрели куда надо. Опять таки все проходит, если Final Gathering отключить. Теоретически этот эффект должен был бы убрать Shared Vertices, но это только теоретически.

Вообще в Ментале много артифактов связаны именно с Final Gathering (особенно при Baking'е), поэтому я стараюсь по мере возможности им не пользоваться.

Bake to texture

Bake Alpha - включите если вы хотите забейкать альфа канал, потом еще нужно выбрать Alpha Mode.

Alpha Mode - если включено Bake Alpha, то указыват метод просчета альфы.

Uv Range - диапазон UV на основе которых будет создан лайтмап. Все не входящее в этот диапазон не будет учитываться при построении текстуры. В UVset'е для бейкинга рекомендую использовать UV координатами от 0 до1 противном случае вам придется указывать вручную квадрат, в котором находятся ваши UV (например, от 0 до 1 и от -1 до 0). Тем более нельзя использовать одновременно разные квадраты UV координат, так как Ментал будет использовать только тот диапазон, который указан в BakeSet'е (по умолчанию от 0 до 1 и от 0 до 1).

Fill Texture Seams - увеличивает текстурное пятно на это значение, во избежания появления текстурных швов. Измеряется texel'ях. Причем, чтобы увидеть эффект действия этого параметра надо перекинуть получившуюся текстуру на другой материал, например lambert, так как surface Shader(получается на выходе) почему то обрезает все то, что находится за пределами UV.

image

Fill scale - значение используется для увеличения пятна текстуры для очень маленьких треугольников.

Override mesh UV set assignments - если вы планируете считать лайтмап не в дефолтный UVset, то здесь нужно указать в какой именно.
Желательно, чтобы во время бейкинга текущим UVset'ом был map1, иначе, особенно в сложных сценах, Maya просто упадет или выдаст ошибку, причем причину сложно понять. Тоже очень похоже на глюк. При этом записывать результат он может в любой, в зависимости от того какой вы ему укажите.

Следует заметить что для того чтобы получить картинку аналогичную той, что выходит при рендере приходится в несколько раз задирать количество GI фотонов и FG. О чем прямым текстом говорится в хелпе Ментала. Это происходит, потому что Ментал Рей не может использовать свой продвинутый алгоритм оптимизации FG, который он использует при обычном просчете из камеры.

Небольшой пример:

image

Рендер


image
image
image

Текстуры 512 x 512

image


Свои вопросы, предложения и пожелания прошу на puppet@rambler.ru
Удачи!
Ваш Puppet.