Всем привет. Статья родилась из вопроса на форуме. Решил потратить немного времени, чтобы помочь не одному, но многим. Пример брал примерно как в вопросе.
Запекание текстур, в данном случае, это процесс переноса материалов и текстур с объекта, состоящего из многих частей и материалов, на один (и объект, и текстуру).
Часто такое надо при подготовке контента под интерактивный/игровой движок/ приложение.
Но и в архитектуре, такой подход иногда бывает необходим.
По шагам:
1. Выставляем системные единицы адекватные проекту (ни на что особо не влияет, скорее для порядка)
2. Создаем объекты с которых нужно будет запекать текстуры/материалы (там может быть сколько угодно объектов), и объект на который надо все это дело запечь. (в целом запекать можно разом и несколько объектов, но не буду усложнять) Важно - итоговый объект должен быть с разверткой, без пересекающихся кусков развертки.
Материалы на изначальных объектах должны быть понятны движку которым рендерим (в данном случае - Corona)
3. Выравниваем объекты относительно друг друга. Это важно.
4. Выделив целевой объект (на который переносим текстуры) идем в диалог Bake to texture (BTT)
5. Из меню слева выбираем нужный канал для запекания. Важно выбирать именно канал под свой движок (Корона, Арнольд, Вирей и. т.д.) иначе магии не будет.
6. Указываем размер, битность, формат, путь и. т.д.
7. Выбираем в колонке project from, опцию pick from list. Ну или просто pick, если перепекаем с одного объекта.
8. Выбираем с каких объектов будут идти данные в запеканку.
9. На объекте появляется модификатор Project (с припиской multiply если объектов проецирования несколько)
10. Чаще всего оболочка запекания (Cage) по умолчанию кривоватая, поэтому жмем reset и после крутим amount в разделе push (чтобы оболочка проецирования была чуть больше модели(все попоадет в оболочку в направлении объекта проецирования - отпечатается на нем))
11. Возвращаемся в BTT и указываем, что делать с запеканкой. По умолчанию он просто сделает текстуры в папке которую указали в п.6 , но удобно сразу делать материал, я выбираю его, и указываем в какой канал итогового материала положить текстуру.
12. Жмем Bake, получаем текстуру (или несколько(печь можно любой канал)). Не забываем остановить рендер, или поставить ограничение. Это уже уникально под каждый движок.
13. Параллельно с этим получаем автоматом новый материал типа shell в котором собран изначальный, и итоговый материал. Можно или отделить итоговый от shell и переназначить, или использовать так (иногда надо во вьюпорте видеть материал до, а на рендере после). Так же понятно можно назначить итоговый материал к итоговому объекту. Дальше это все улетает в экспорт, или куда нужно.
Что в итоге получили - один объект, вместо кучи. И один материал вместо кучи.
Так можно перепекать детали с высокополигональных объектов на низко полигональные, лищь бы детали были в радиусе cage при запекании. Ну, думаю вы поняли суть.
Надеюсь тема запекания стала ближе. Если полезно - оцените статью.