По-перше, будьте готові, що в один прекрасний день художник додасть в початок або кінець назви матеріалу пробіл, і ви проведете два захоплюючих години в пошуках помилки :) Тому прогалини на початку і кінці назв матеріалів і об'єктів краще відразу видаляти автоматично.
Малюнок 9. Хоча цього не видно, насправді перед словом "citywall" доданий пробіл.
Те ж саме стосується подібних по зображенню російських і англійський букв ( "a", "p", "e", "o" і т.д.). Найпростіше заборонити використання російських букв в назвах, і тоді плагін зможе видавати повідомлення про подібні помилки при експорті.
Multi / sub-object material
Оскільки в 3DS MAX використовується архітектура "один об'єкт - один матеріал", то для застосування різних текстур до обраних трикутниках об'єкта використовується спеціальний Multi / Sub-object material, який, в свою чергу, містить посилання на реальні матеріали, що застосовуються до трикутниках. Multi / Sub-object material пов'язує з кожним з дочірніх матеріалів унікальний id.
Малюнок 10. Multi / Sub-object матеріал.
Кожному трикутнику, відповідно, вказується id дочірнього матеріалу.
Малюнок 11. Панель Face sub-object.
Щодо id дочірніх матеріалів потрібно знати наступне:
- в інтерфейсі 3DS MAX нумерація id'ов починається з одиниці. У той же час, в метод Mtl-> GetSubMtl (i) передбачає нумерацію з нуля;
- id'и можуть мати пропуски (1,2,3,5,6,7) і починатися не з 1. Будьте готові, що метод Mtl-> GetSubMtl () може повернути NULL;
- трикутнику може бути присвоєно id неіснуючого дочірнього матеріалу. У вікні viewport трикутник буде відображатися чорним кольором. Це помилка художника, але ви все одно повинні переконатися, що плагін в такому разі не "вилітає";
- трикутнику може бути присвоєно id більше, ніж максимальний id дочірніх матеріалів. На відміну від попередньої, така ситуація в 3DS MAX вважається нормальною. В цьому випадку потрібно взяти залишок від ділення id на максимальний id.
В цілому, обробка матеріалів виглядає так:
Але це ще не все. Як відомо, художники - люди неакуратні, і можуть повторювати однакові матеріали в списку дочірніх. Переконайтеся, що це обробляється і не призводить до появи зайвих Батче (batch, drawcall).
Sub-region tiling
Малюнок 12. 3DS MAX дозволяє використовувати частину зображення в якості текстури.
3DS MAX при створенні матеріалу дозволяє вказувати, яку частину зображення потрібно використовувати в якості текстури. Якщо без Тайлінг цю проблему при експорті можна вирішити модифікацією UV координат, то при використанні Тайлінг зробити нічого не можна, тому що ваш движек навряд чи підтримує таку можливість. Найкраще просто заборонити використання цієї фічі. Оскільки ми експорту з пакета з великими можливостями в формат з обмеженими можливостями, то в загальному випадку, ще до початку моделювання, художник повинен прочитати ваш документ, в якому крім обмежень по кількості трикутників і текстур є і такі нюанси.