Матеріал для моделі - valve developer community

Моделі в іграх Source - будь то props, персонажі, viewmodels. та ін. - вимагають хоча б 3 основних компоненти: Ваш.MDL. Ваш.VMT і Ваш.VTF.

На жаль, не дуже точно говорити, що MDL це "каркас", VTF це "обкладинка" і VMT це "фізика". На кожному етапі, ваша модель буде містити принаймні два окремих, але завжди посилаються один на одного файлу. Кожен етап компіляції вимагає інформацію з частини іншого файлу. Тому процедура повинна проходити по суворій послідовності, і імена файлів і їх розташування завжди також чітко визначений.

Процес створення цих файлів уміщається в два спільні кроки:

  1. Перший етап це створення основної текстури і розміщення її на вашій сітці, в результаті вийти пара "тимчасових" файлів: Ваш.SMD і Ваш.TGA.
  2. На другому етапі, використовуючи Ваш.SMD і Ваш.TGA компілюється Ваш.MDL. Ваш.VMT і Ваш.VTF в певній папці Source game_directory.
  • Для створення текстури для вашої моделі в XSI:
  1. виберіть свою створену модель.
  2. виберіть XSI's Render mode (вгорі на лівій боковій колонці).
  3. з Render> Get-Material виберіть Blinn (закрийте вікно Material)
  4. з Render> Get-Texture виберіть Image, щоб відкрити вікно Image-Texture:
  5. в Image-Texture tab> Image натисніть "New", щоб знайти і імпортувати ваш новий TGA файл текстури.
  6. в Image-Texture tab> Texture Projection натисніть "New" і виберіть Unique UVs (polymesh) (закрийте вікно Image)
  7. натисніть "Alt + 7", щоб відкрити вікно XSI Texture Editor.
  • Якщо ви зіпсували своє розміщення текстури і хочете почати спочатку:
1. Натисніть "8" щоб відкрити Scene Explorer, потім знайдіть Texture Projection як показано нижче: 2. Тепер клацніть ЛКМ на "Texture Projection (Explicit UVWs)" щоб вибрати його, потім натисніть на кнопку "Delete", щоб видалити це. 3. Перейдіть в 3D вид (в режим 'textured'), переконайтеся, що все зроблено правильно. Якщо немає, то натисніть "Ctrl + Z", щоб скасувати і спробувати ще раз.
  • Дивіться також урок XSI Texturing.
  • Висновки про процес текстурування вашого персонажа можуть бути зроблені безпосередньо в движку Source, перш ніж йти далі зі своїм матеріалом, експортуйте його в .vtf, створіть .vmt, створіть .mdl і подивитися на модель в грі. Робота над тонкощами і параметрами шейдеров може бути тільки після того, як ви побачите вашу модель в грі.

Тимчасова текстура "checkerboard" ( "Шахова дошка")

  • Використання текстури шахівниці хороший спосіб перевірити ваші UV координати; це дозволить вам швидко побачити наявність будь-яких спотворень, смуг або швів, яким потрібне коригування. Також, використання текстури шахівниці дає хороший спосіб виміряти скільки елементів текстури вам потрібно на різних частинах моделі, оскільки ви визначили UV координати, деякі елементи (таких як особа) вимагають трохи більше щільності, але в цілому вам слід прагнути до логічної щільності елементів текстури на всій моделі. Стандартний noicon.pic файл в XSI хороший вибір або ви можете використовувати Checkerboard Starter Texture (клік ПКМ, зберегти як.) Входить в SDK.

Який повинен бути розмір текстури?

багатошарові текстури

  • Вам слід намагатися використовувати тільки одну основну текстуру, якщо матеріалу не потрібно іншого. Багатошарова текстура може істотно вплинути на час візуалізації. Якщо вам необхідно створити багатошарову текстуру для моделі, ви повинні для початку вибрати полігони, згрупувати їх, а потім застосувати матеріал і зображення до групи. Переконайтеся, що в параметрах встановлено "reload externally modified images on focus". Це перезавантажить текстуру, коли ви повернетеся за допомогою alt-tab в XSI з іншої програми, наприклад Photoshop, що врятує вам трохи часу.

Будь-яка Текстура, яка застосована до моделі (перед експортом в Ваш.SMD з XSI) повинна бути конвертована з TGA в VTF файл, перш ніж це зможе використовувати Source Engine. Ім'я VTF файлу повинна бути таким же як і у TGA файлу, використаного в Вашем.SMD (наприклад: Ваш.TGA -> Ваш.VTF) і VTF поміщений в папку game_directory / materials / models.

  • SourceSDK / bin містить Vtex .exe, додаток, що використовується для компіляції в .VTF. Найпростіший спосіб використовувати Vtex - це створити ярлик для vtex.exe на своєму робочому столі, і перетягувати .TGA файли на нього. Це створить .VTF файл, який буде мати таке ж ім'я як і ваш .TGA файл в директорії матеріалів. Коли ви перетягнули tga файл в Vtex, створиться .TXT файл в тойже директорії, де розташований .TGA файл. У цьому файлі ви можете написати команди для Vtex, які змінять спосіб компресії.

Note: Для швидкого створення матеріалів, спробуйте додати "-shader VertexLitGeneric" у властивостях ярлика для Vtex, в поле шляху до об'єкту. Це також працює з будь-якими іншими типами шейдерів. Перенесення текстури на цей модифікований ярлик створить як зазвичай .VTF файл і ще .VMT файл з типом шейдера і основний текстурою певними для вашої текстури.

  • Cannonfodder's StudioCompiler надасть більш дружній інтерфейс для Vtex (і Studiomdl). Це дозволить компілювати / декомпілювати VTF, VMT і MDL файли з / в TGA і SMD файли.

Кожен Матеріал в Source engine визначено .VMT файлом. Це специфічна модель освітлення, основна текстура (VTF), і будь-яка інша інформація, яка вам може знадобитися: дзеркальність, світіння, карти нормалей, прозорість, напівпрозорість, і proxy shaders.

Для моделі Ваш.VMT повинен бути написаний вручну (використовуючи блокнот і т.п.) і розміщений в папці game_directory / materials / models де Ваш.MDL зможе знайти їх. $ Basetexture (Ваш.VTF) посилається на Ваш.VMT, повинен також бути в тій же папці game_directory / materials / models де Ваш.VMT зможе знайти його.

Tip: QC команда $ cdmaterials може використовувати інші папки.

Warning: Всі матеріали повинні використовувати VertexLitGeneric шейдер. Матеріали для моделі не працюють з LightmappedGeneric або UnlitGeneric.

Тут приклад VMT файлу з HL2:

У цьому прикладі матеріал використаний для полігональної моделі використовуючи VertexLitGeneric шейдер. $ Basetexture або diffusemap визначена в "Models / Combine_soldier / Combine_elite" $ bumpmap або карта нормалей імпортована з "models / combine_soldier / combine_elite_normal". $ Envmap або environmentmap встановлена ​​на "env_cubemap". що засилає до cubemap entities розміщеної на рівні; дзеркальне відображення для цього персонажа завжди буде відображати світ навколо - передбачається, що ви розмістили cubemap entities на рівні. Ви можете використовувати всместе цього інший cubemap, якщо хочете. Наступного лінії, "$ normalmapalphaenvmapmask" 1 повідомляє візуалізатором що в цьому матеріалі є маска дзеркальності, і тільки деякі її частини відіб'ють інформацію з env_cubemap, розташована в даному випадку в альфа каналі карти нормалей. Карта дзеркальності може бути і в альфа каналі основний текстури "$ basealphaenvmapmask 1" або в файлі маски дзеркальності "$ envmapmask" "models / modelname / mymask". Команда "$ envmapcontrast" 1 означає, що яскравість відображень envmap множиться на себе один раз; для створення яскравого освітлення і глибоких тіней. Всі моделі вимагають наявність команди "$ model" 1. яка повідомляє візуалізатором, про те, що матеріал використовується для полігональної моделі скомпілірованой Studiomdl.exe. Остання лінія "$ selfillum" 1 повідомляє візуалізатором, що альфа канал $ basetexture містить інформацію про самоізлученіі, ці області альфа каналу показують світяться області моделі.

Альфа-канал

Для створення матеріалу з робочим альфа-каналом вам необхідно ввести команду "$ translucent" 1 в ваш VMT файл. Іноді це призводить до помилки візуалізації моделі (наприклад theres convex 1 in the back of convex 2, but convex 2 gets hidden by convex 1 => Rendering error). Якщо це трапляється, використовується команда "$ alphatest" 1 замість "$ translucent" 1. яка виправляє це.

Proxy shaders

Потужний компонент системи матеріалів в Source engine це Proxy shader system. Приклад на що здатні proxy shaders покаже карта shaderzoo входить в sdk. Подальша інформація про їх створення ви зможете знайти у відповідних розділах документації.

Схожі статті