|
При работе с бейкингом в Ментале я столкнулся с рядом проблем, и поэтому я решил кратко описать их и пояснить некоторые особенности работы. Так как Ментал Рей при бейкание каждый раз испускает фотоны для каждого объекта и каждого материала лучше будет временно скомбайнить все объекты в один и посчитать освещение. После чего вернуть все как было. При желании можно пересчитать освещение для каждого объекта в отдельности. Выделяем нужные объекты и вызываем меню бейкинга Lighting/Shading->Batch Bake (mental ray) или Edit Polygons->Colors->Prelight (mental ray).
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 то получается забавная картина. Ментал почему то не сглаживает вертекс колор, а хранит цвет для каждого вертекс фейса свой, причем цвет получается разный. ![]() Не иначе как глюк. Причем это относится только к Final Gathering'у, все проходит при его отключении. Можно написать скрипт, который бы усреднял значения цвета вертекс фейсов. В моем случае скрипт получился достаточно медленный и в итоге я решил отказаться от Final Gathering'а и освещать одними фотонами. Кроме того, был замечен еще один артефакт при включенном Final Gathering. В углах, которые меньше или равны 90 градусов появляются резкие затенения. ![]() По всей видимости, это происходит, потому что Ментал Рей испускает 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. ![]() Fill scale - значение используется для увеличения пятна текстуры для очень маленьких треугольников. Override mesh UV set assignments - если вы планируете считать лайтмап не в дефолтный UVset, то здесь нужно указать в какой именно. Желательно, чтобы во время бейкинга текущим UVset'ом был map1, иначе, особенно в сложных сценах, Maya просто упадет или выдаст ошибку, причем причину сложно понять. Тоже очень похоже на глюк. При этом записывать результат он может в любой, в зависимости от того какой вы ему укажите. Следует заметить что для того чтобы получить картинку аналогичную той, что выходит при рендере приходится в несколько раз задирать количество GI фотонов и FG. О чем прямым текстом говорится в хелпе Ментала. Это происходит, потому что Ментал Рей не может использовать свой продвинутый алгоритм оптимизации FG, который он использует при обычном просчете из камеры. Небольшой пример:![]() Рендер
Текстуры 512 x 512 ![]() Свои вопросы, предложения и пожелания прошу на puppet@rambler.ru |
|
|