Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Standard Material 3D і ORM Material 3D

Вступ

StandardMaterial3D і ORMMaterial3D (Occlusion, Roughness, Metallic) є стандартними 3D-матеріалами, які мають на меті забезпечити більшість функцій, які художники шукають у матеріалі, без необхідності написання шейдерного коду. Однак їх можна перетворити на шейдерний код, якщо потрібні додаткові функції.

Цей підручник пояснює параметри, присутні в обох матеріалах.

Є 4 способи додати ці матеріали до об’єкта. Матеріал можна додати у властивість Material сітки. Його можна додати у властивість Material вузла, який використовує сітку (наприклад, вузол MeshInstance3D), властивість Material Override вузла, який використовує сітку, і Material Overlay.

../../_images/add_material.webp

Якщо ви додали матеріял до геометричної сіті, то кожного разу, коли ви використовуватимете цю геометрію, вона матиме той матеріял. Якщо додасте матеріял до самого вузла, то лише той вузол і матиме обраний матеріял. Він також використовуватиметься замість матеріялу тої геометрії, що додана до вузла. А якщо ж ви додасте метеріял до властивості Material Override вузла, то він також використовуватиметься лише тим вузлом. Матеріял відображатиметься як замість матеріялу самого вузла, так і замість матеріялу геометрії використаної цим вузлом.

Властивість Material Overlay відтворить матеріал поверх поточного, який використовується сіткою. Як приклад, це можна використати для створення ефекту прозорого щита на сітці.

Налаштування BaseMaterial 3D

StandardMaterial3D має багато параметрів, які визначають вигляд матеріалу. Усі вони належать до категорії BaseMaterial3D

../../_images/spatial_material1.webp

Матеріали ORM майже однакові з однією відмінністю. Замість окремих налаштувань і текстур для оклюзії, шорсткості та металевості існує єдина текстура ORM.Для кожного параметра використовуються різні колірні канали цієї текстури. Такі програми, як Substance Painter і Armor Paint, нададуть вам можливість експортувати в цьому форматі, для цих двох програм це стандарт експорту для unreal engine, який також використовує текстури ORM.

Прозорість

За замовчуванням матеріали в Godot непрозорі. Це швидко рендериться, але це означає, що матеріал не видно крізь нього, навіть якщо ви використовуєте прозору текстуру у властивості Альбедо > Текстура (або встановлюєте для Альбедо > Колір прозорий колір).

Щоб мати можливість бачити крізь матеріал, матеріал потрібно зробити прозорим. Godot пропонує кілька режимів прозорості:

  • Вимкнено: матеріал непрозорий. Це найшвидший спосіб візуалізації, з підтримкою всіх функцій візуалізації.

  • Альфа: Матеріал прозорий. Напівпрозорі області малюються за допомогою змішування. Це повільно для візуалізації, але це забезпечує часткову прозорість (також відому як напівпрозорість). Матеріали, які використовують альфа-змішування, також не можуть відкидати тіні та не видно у відображеннях екранного простору.

    • Альфа добре підходить для ефектів частинок і VFX.

  • Alpha Scissor: Матеріал прозорий. Напівпрозорі області, непрозорість яких є нижчою за поріг альфа-ножиць, не малюються (вище цієї прозорості вони малюються як непрозорі). Це швидше для візуалізації, ніж Alpha, і не виявляє проблем із сортуванням прозорості. Недоліком є те, що це призводить до прозорості "все або нічого", без проміжних значень. Матеріали, які використовують альфа-ножиці, можуть відкидати тіні.

    • Alpha Scissor ідеально підходить для листя та огорож, оскільки вони мають жорсткі краї та потребують правильного сортування, щоб виглядати добре.

  • Альфа-хеш: Матеріал прозорий. Напівпрозорі області малюються за допомогою згладжування. Це також прозорість типу «все або нічого», але згладжування допомагає відобразити частково непрозорі області з обмеженою точністю залежно від роздільної здатності вікна перегляду. Матеріали, що використовують альфа-хеш, можуть відкидати тінь.

    • Alpha Hash підходить для реалістичного вигляду волосся, хоча стилізоване волосся може краще працювати з альфа-ножицями.

  • Попередній проход глибини: спочатку рендерить повністю непрозорі пікселі об’єкта через непрозорий конвеєр, а потім рендерить решту за допомогою альфа-змішування. Завдяки цьому сортування за прозорістю буде в основному правильним (хоча і не повністю, оскільки частково прозорі області все ще можуть демонструвати неправильне сортування). Матеріали, які використовують глибинний попередній проход, можуть відкидати тіні.

Примітка

Godot автоматично змусить матеріал бути прозорим за допомогою альфа-змішування, якщо виконується будь-яка з цих умов:

  • Встановлення режиму прозорості Альфа (як описано тут).

  • Встановлення режиму змішування, відмінного від стандартного Mix

  • Увімкнення Refraction, Proximity Fade або Distance Fade.

Порівняння прозорості альфа-змішування (ліворуч) і альфа-ножиць (праворуч):

../../_images/spatial_material12.png

Попередження

Альфа-змішана прозорість має кілька limitations:

  • Альфа-змішані матеріали значно повільніше рендеряться, особливо якщо вони накладаються.

  • Альфа-змішані матеріали можуть мати проблеми з сортуванням, коли прозорі поверхні накладаються одна на одну. Це означає, що поверхні можуть відтворюватися в неправильному порядку, при цьому поверхні ззаду виглядатимуть перед тими, які фактично розташовані ближче до камери.

  • Альфа-змішані матеріали не відкидають тіні, хоча можуть отримувати тіні.

  • Альфа-змішані матеріали не з’являються у відбиттях (окрім відбивних зондів).

  • Віддзеркалення екранного простору та різкі відбиття SDFGI не з’являються на матеріалах з альфа-змішуванням. Коли SDFGI увімкнено, грубі відображення використовуються як запасний варіант незалежно від шорсткості матеріалу.

Перш ніж використовувати режим прозорості Альфа, завжди перевіряйте, чи інший режим прозорості більше підходить для ваших потреб.

Альфа-згладжування

Примітка

Ця властивість відображається лише в режимі прозорості Alpha Scissor або Alpha Hash.

Хоча альфа-ножиці та альфа-хеш-матеріали рендеряться швидше, ніж альфа-змішані матеріали, вони демонструють жорсткі межі між непрозорими та прозорими областями. Хоча можна використовувати antialiasing techniques на основі постобробки, такі як FXAA і TAA, це не завжди бажано, оскільки ці методи, як правило, роблять кінцевий результат більш розмитим або демонструють артефакти ореолів.

Доступно 3 режими альфа-згладжування:

  • Вимкнено: Немає альфа-згладжування. Краї прозорих матеріалів виглядатимуть згладженими, якщо не використовуватиметься рішення для згладжування на основі постобробки.

  • Alpha Edge Blend: забезпечує плавний перехід між непрозорими та прозорими ділянками. Також відомий як «альфа до покриття».

  • Alpha Edge Clip: забезпечує чіткий, але все ще згладжений перехід між непрозорими та прозорими областями. Також відомий як "альфа до покриття + альфа до одного".

Якщо для режиму альфа-згладжування встановлено значення Alpha Edge Blend або Alpha Edge Clip, нова властивість Alpha Antialiasing Edge стає видимою нижче в інспекторі. Ця властивість керує порогом, нижче якого пікселі мають бути прозорими. Хоча ви вже визначили поріг альфа-ножиць (лише за використання Alpha Scissor), цей додатковий поріг використовується для плавного переходу між непрозорими та прозорими пікселями. Alpha Antialiasing Edge має завжди бути встановлено значення, яке є строго нижчим за порогове значення альфа-ножиць. Значення за замовчуванням 0,3 є розумним значенням із альфа-ножицями порогового значення 0,5, але пам’ятайте, що під час зміни порогу альфа-ножиць необхідно налаштувати цей край альфа-згладжування.

Якщо ви виявите, що ефект згладжування недостатньо ефективний, спробуйте збільшити Alpha Antialiasing Edge, переконавшись, що він нижче Порогового значення альфа-ножиць (якщо матеріал використовує альфа-ножиці). З іншого боку, якщо ви помітите, що зовнішній вигляд текстури помітно змінюється, коли камера наближається до матеріалу, спробуйте зменшити Alpha Antialiasing Edge.

Важливо

Для досягнення найкращих результатів MSAA 3D має бути встановлено принаймні 2× у параметрах проекту під час використання альфа-згладжування. Це пояснюється тим, що ця функція покладається на альфа-версію до покриття, яка є функцією, наданою MSAA.

Без MSAA до країв матеріалу застосовується фіксований малюнок згладжування, який не надто ефективний для згладжування країв (хоча все одно може трохи допомогти).

Режим змішування

Регулює змішування матеріялу. Пам'ятайте, що прозорі об'єкти будуть такими лише в режимі Mix.

  • Mix — режим змішування за замовчуванням, альфа канал регулює видимість об'єкта.

  • Додати: Остаточний колір об’єкта додається до кольору екрана, добре для відблисків або ефектів, схожих на вогонь.

  • Віднімання: Кінцевий колір об'єкта віднімається від кольору екрана.

  • Множення: Кінцевий колір об’єкта множиться на колір екрана.

  • Помножена альфа-значення: Очікується, що колір об'єкта вже помножено на альфу. Це поводиться як Додавання, коли альфа дорівнює 0.0 (повністю прозоре), та як Змішування, коли альфа дорівнює 1.0 (непрозоре).

../../_images/spatial_material8.png

Режим вибракування

Визначає, яка сторона об'єкта не малюється, при рендері задньої сторони:

  • Back: Задня частина об'єкта вибраковується, коли її не видно (за замовчуванням).

  • Front: Передня частина об'єкта вибраковується, коли її не видно.

  • Disabled: Використовується для двосторонніх об'єктів (вибракування не виконується).

Примітка

За замовчуванням, у Blender вимкнено відсікання зворотних граней для матеріалів, і матеріали експортуватимуться відповідно до того, як вони рендеряться в Blender. Це означає, що матеріали в Godot матимуть режим відсікання Вимкнено. Це може знизити продуктивність, оскільки зворотні грані будуть рендеритися, навіть якщо вони відсікаються іншими гранями. Щоб вирішити цю проблему, увімкніть Відсікання зворотних граней на вкладці «Матеріали» Blender, а потім знову експортуйте сцену в glTF.

Режим малювання глибини

Вказує, коли має відбутися відтворення глибини.

  • Лише непрозорі (за замовчуванням): Глибина малюється лише для непрозорих об’єктів.

  • Always: Глибина малюється і для непрозорих, і для прозорих, об'єктів.

  • Ніколи: Визначення глибини не відбувається (не плутайте це з опцією Без перевірки глибини нижче).

  • Depth Pre-Pass: Для об'єктів з прозорістю спочатку робиться прохід по непрозорих деталях, вже потім поверх них опрацьовується прозорість. Використовуйте цей варіант для прозорої трави, або листя дерев.

../../_images/material_depth_draw.png

Без перевірки глибини

Щоб ближні об'єкти показувались поверх дальніх об'єктів, проводиться перевірка глибини. Якщо її вимкнути, то об'єкти можуть з'являтись поверх всього іншого (або за ним).

Є сенс це робити, для того щоб намалювати якісь позначки у просторі поверх об'єктів. Функція чудово працює в парі із параметром матеріялу Render Priority (Порядок Відображення) про який написано нижче.

../../_images/spatial_material3.png

Тест глибини

Це можна використовувати для інвертування стандартного тесту глибини. Якщо встановлено значення Інвертований, об'єкт відображатиметься лише тоді, коли його перекривають, і буде прихований в іншому випадку.

Це не має ефекту, якщо ввімкнено Без перевірки глибини.

../../_images/material_depth_test.webp

Затінювання

Режим затінення

Матеріали підтримують три режими затінення: На піксель, На вершину та Незатінений.

Три сфери, що показують режими на піксель, на вершину та незатінений.

Режим затінення Per-Pixel розраховує освітлення для кожного пікселя та добре підходить для більшості випадків використання. Однак у деяких випадках ви можете підвищити продуктивність за допомогою іншого режиму затінення.

Режим затінення по вершинам, який часто називають «затіненням вершин» або «освітленням вершин», натомість обчислює освітлення один раз для кожної вершини та інтерполює результат між кожним пікселем.

На бюджетних або мобільних пристроях використання вершинного освітлення може значно підвищити продуктивність візуалізації. Під час візуалізації кількох шарів прозорості, наприклад, коли використовуються системи частинок, використання затінення по вершинах може покращити продуктивність, особливо коли камера знаходиться поблизу частинок.

Ви також можете використовувати освітлення для кожної вершини, щоб отримати ретро вигляд.

Два куби з текстурою цегли, один заштрихований і один незаштрихований.

Текстура з AmbientCG

Режим затінення Незатінений взагалі не розраховує освітлення. Натомість колір Albedo виводиться безпосередньо. Світло взагалі не впливатиме на матеріал, а незатінені матеріали виглядатимуть значно яскравіше, ніж затемнені.

Відтворення незатінених корисно для деяких конкретних візуальних ефектів. Якщо потрібна максимальна продуктивність, його також можна використовувати для частинок, бюджетних або мобільних пристроїв.

Режим розсіювання

Визначає алгоритм, який використовується при дифузному розсіюванні світла при ударі об'єкта. Типовим є Burley. Також доступні інші режими:

  • Burley — стандартний режим, фізично коректне відображення розроблене у компанії Disney.

  • Lambert — не враховує шершавість матеріялу.

  • Lambert Wrap — розширює метод Lambert, так щоб він покривав більше 90 градусів поверхні, при збільшенні шершавости. Чудово працює з волоссям та якщо потрібно швидко симулювати підповерхневе розсіювання. Цей метод зберігає „енергію світла“.

  • Toon: Забезпечує жорсткий зріз для освітлення зі згладжуванням, ураженим шорсткостями. Щоб досягти кращого ефекту, рекомендовано вимкнути вплив неба з налаштувань навколишнього освітлення вашого середовища або вимкнути навколишнє освітлення в StandardMaterial3D.

../../_images/spatial_material6.webp

Режим віддзеркалення

Визначає, яким чином відображати відблиск світла на поверхні об'єкта.

  • SchlickGGX: Найпоширеніша крапля, яка зараз використовується 3D-моделями PBR.

  • Toon — створює чітку пляму в мультяшному стилі. Її розмір залежить від параметра шершавости.

  • Disabled — іноді ніяких плям взагалі не потрібно. Геть!

../../_images/spatial_material7.webp

Вимкнути розсіяне світло

Об'єкт більше не освітлюється навколишнім світлом.

Вимкнути туман

Робить об’єкт незахищеним від глибинного або об’ємного туману. Це корисно для частинок або інших сумішей з додаванням матеріалів, які інакше показали б форму сітки (навіть у місцях, де вона була б невидима без туману).

Вимкнути дзеркальну оклюзію

Зменшує відбиття об'єкта там, де вони зазвичай були б затьмарені.

Вершина

Цей параметр дозволяє вибрати, що робитиметься за замовчуванням для кольорів вершин, які надходять із програми 3D-моделювання. За замовчуванням вони ігноруються.

../../_images/spatial_material4.webp

Use as Albedo (Використати як колір поверхні)

Якщо обрана ця опція: колір вершин буде кольором поверхні.

Is sRGB (Сприймати як sGRB)

Більшість програмного забезпечення для 3D-моделювання, швидше за все, експортуватиме кольори вершин як sRGB, тому ввімкнення цього параметра допоможе їм виглядати правильно.

Альбедо

Albedo - основний колір матеріалу, на якому працюють всі інші налаштування. Якщо встановлено значення Unshaded, то це єдиний видимий колір. У попередніх версіях Godot цей канал називався Diffuse. Зміна назви відбулася в основному тому, що в PBR (фізично вірний рендеринг) цей колір впливає на набагато більше обчислень, ніж просто дифузний шлях освітлення.

Колір Альбедо і текстуру можна використовувати разом, бо вони множаться.

Альфа-канал у кольорі та текстурі альбедо також використовується для прозорості об'єкта. Якщо ви використовуєте колір або текстуру з альфа-каналом, переконайтеся, що ввімкнено прозорість або альфа-ножиці, щоб це працювало.

Метал

Godot використовує модель металу замість конкуруючих моделей через простоту. Цей параметр визначає, наскільки рефлексивним є матеріал. Чим більша рефлексія, тим менше дифузне/навколишнє світло впливає на матеріал і тим більше світла відбивається. Ця модель називається "енергозберігаючою".

Параметр Specular є загальною величиною рефлексії (на відміну від Metallic, він не є енергозберігаючим, тому залиште його на 0.5 і не чіпайте, якщо вам цього не потрібно).

Мінімальна внутрішня рефлексія 0.04, тому неможливо зробити матеріал абсолютно нерефлекторним, як і в реальному житті.

../../_images/spatial_material13.png

Шорсткість

Roughness (Шорсткість) впливає на дзеркальність. Значення 0 створює ідеальне дзеркало, в той час як значення 1 повністю розмиває відображення (імітуючи природню мікро-поверхню). Найбільш поширені види матеріалів можуть бути досягнуті при правильному поєднанні Metallic і Roughness.

../../_images/spatial_material14.png

Випромінювання

Emission визначає кількість світла, випромінюваного матеріалом (майте на увазі, що це не включає світло, що оточує геометрію, якщо не використовується VoxelGI або SDFGI). Це значення додається до кінцевого зображення, і на нього не впливає інше освітлення сцени.

../../_images/spatial_material15.png

Карта нормалей

Карта нормалей дає змогу встановити текстуру з зображенням тонких деталей фігури. Вона не змінює геометрію, лише кут падіння світла. У Godot використовуються тільки червоні і зелені канали нормальних карт для кращого стиснення і ширшої сумісності.

../../_images/spatial_material16.png

Примітка

Godot вимагає карти нормалей, які використовують координати X+, Y- та Z+ (так званий OpenGL стиль). Якщо ж ви імпортували матеріал, призначений для використання з іншим редактором (таким як DirectX), можливо, вам доведеться переробити карти нормалей так, щоб їх вісь Y перевернулась.

Більше інформації про карти нормалей (включаючи таблицю порядків координат для популярних редакторів) можна знайти тут.

Зігнута карта нормалей

Карта вигнутих нормалей описує середній напрямок навколишнього освітлення. На відміну від звичайної карти нормалей, вона використовується для покращення реакції матеріалу на освітлення, а не для додавання деталей поверхні.

Це досягається двома способами:

  • Непряме розсіяне освітлення створене для того, щоб точніше відповідати глобальному освітленню.

  • Якщо ввімкнено дзеркальну оклюзію, вона розраховується за допомогою вигнутих нормалей та навколишнього освітлення, а не лише на основі навколишнього освітлення. Це включає навколишнє освітлення в екранному просторі (SSAO) та інші джерела навколишнього освітлення.

../../_images/spatial_material_bentnormals.webp

Godot використовує лише червоний та зелений канали зігнутої карти нормалей для кращого стиснення та ширшої сумісності.

Під час створення карти зігнутих нормалей для її коректної роботи в Godot необхідні три речі:

  • Під час випікання необхідно використовувати косинусний розподіл променів.

  • Текстуру необхідно створювати в дотичному просторі.

  • Для карти зігнутих нормалей потрібно використовувати координати X+, Y+ та Z+, це називається стилем OpenGL. Якщо ви імпортували матеріал, призначений для використання з іншим рушієм, він може бути в стилі DirectX, і в цьому випадку карту зігнутих нормалей потрібно конвертувати, щоб її вісь Y була відображена. Цього можна досягти, встановивши для зеленого каналу в розділі Перепризначення каналу значення Інвертований зелений на панелі імпорту.

Примітка

Зігнута карта нормалей відрізняється від звичайної карти нормалей. Вони не є взаємозамінними.

Обідок

Деякі тканини мають невелике мікро-хутро, яке змушує світло розкидатися навколо нього. Godot реалізує це параметром Rim. На відміну від інших реалізацій освітлення обідка, які просто використовують емісійний канал, цей фактично враховує світло (нема світла немає обідка). Це робить ефект правдоподібнішим.

../../_images/spatial_material17.png

Розмір обідка залежить від шорсткості, і є спеціальний параметр, щоб вказати, як він має бути пофарбований. Якщо відтінок Tint є 0, для обідка використовується колір світла. Якщо відтінок Tint є 1, то використовується альбедо матеріалу. Використання проміжних значень, як правило, працює найкраще.

Очистити

Параметр Clearcoat використовується для додавання вторинного проходу прозорого покриття в матеріалі. Часто зустрічається в автомобільній фарбі та іграшках. На практиці це маленька дзеркальна пляма, додана поверх існуючого матеріалу.

../../_images/clearcoat_comparison.png

Анізотропія

Змінює форму дзеркальної плями і вирівнює її до дотичного простору. Анізотропія зазвичай використовується з волоссям, або для того, щоб зробити такі матеріали, як матовий алюміній, реалістичнішими. Особливо добре працює в поєднанні з картами потоку.

../../_images/spatial_material18.png

Навколишня оклюзія

Можна вказати запечену карту оклюзії навколишнього середовища. Ця карта впливає на те, скільки навколишнього світла досягає кожної поверхні об'єкта (за замовчуванням вона не впливає на пряме світло). Хоча можна використовувати Екранно-Просторову Навколишню Оклюзію (Screen-Space Ambient Occlusion (SSAO)) для створення навколишньої оклюзії, ніщо не перевершує якість добре запеченої карти оклюзії. Рекомендується, за можливості, запікати навколишню оклюзію.

../../_images/spatial_material19.png

Висота

Встановлення карти висот на матеріал створює пошук по променях, щоб імітувати правильне зміщення порожнин уздовж напрямку огляду. Це лише створює ілюзію глибини, але не додає справжньої геометрії — для форми карти висот, яка використовується для фізичного зіткнення (наприклад, місцевості), див. HeightMapShape3D. Це може не працювати для складних об’єктів, але створює реалістичний ефект глибини для текстур. Щоб отримати найкращі результати, Height слід використовувати разом із нормальним відображенням.

../../_images/spatial_material20.png

Підповерхневе розсіювання

Це доступно лише у засобах візуалізації Forward+, а не для мобільних і сумісних рендерів.

Цей ефект імітує світло, яке проникає в поверхню об'єкта, розсіюється, а потім виходить. Корисно для створення реалістичної шкіри, мармуру, кольорових рідин і т. д.

../../_images/spatial_material21.png

Заднє освітлення

Контролює, скільки світла від освітленої сторони (видимої світлу) переноситься на темну сторону (протилежну світлу). Добре підходить для тонких предметів, таких як листя рослин, трава, людські вуха і т. д.

../../_images/spatial_material22.png

Заломлення

Коли заломлення ввімкнено, Godot намагається отримати інформацію з-за об’єкта, що відображається. Це дозволяє спотворювати прозорість подібно до заломлення в реальному житті.

Не забудьте використовувати прозору текстуру альбедо (або зменшити альфа-канал кольору альбедо), щоб зробити заломлення видимим, оскільки заломлення покладається на прозорість, щоб мати видимий ефект.

Рефракція також враховує шорсткість матеріалу. Вищі значення шорсткості зроблять об’єкти за заломленням більш розмитими, що імітує реальну поведінку. Якщо ви не бачите за об’єктом, коли заломлення ввімкнено, а прозорість альбедо зменшена, зменшіть значення Шорсткості матеріалу.

Карту нормалей можна додатково вказати у властивості Текстура заломлення, щоб дозволити спотворювати напрямок заломлення на піксельній основі.

../../_images/spatial_material23.png

Примітка

Заломлення реалізовано як ефект екранного простору та робить матеріал прозорим. Це робить ефект відносно швидким, але це призводить до деяких обмежень:

  • Transparency sorting можуть виникнути проблеми.

  • Заломлюючий матеріал не може заломлюватися на себе чи на інші прозорі матеріали. стимулюючи матеріал за іншим прозорим матеріалом буде невидимим.

  • Об’єкти поза екраном не можуть з’являтися в заломленні. Це найбільш помітно при високих значеннях сили заломлення.

  • Непрозорі матеріали перед заломлюючим матеріалом матимуть «заломлені» краї, хоча цього не повинно бути.

Подробиці

Godot дозволяє використовувати вторинні альбедо і карти нормалей для детальних текстур, які можуть бути змішані багатьма способами. Поєднуючи їх вторинним UV, або тристоронніми режимами, можна досягти багатьох цікавих текстур.

../../_images/spatial_material24.png

Існує кілька параметрів, які визначають спосіб використання деталей.

Mask: Маска деталей - це чорно-біле зображення, яке використовується для контролю місця накладання на текстурі. Біле - для текстур деталей, чорне - для звичайних текстур матеріалу, різні відтінки сірого - для часткового змішування текстур матеріалу та текстур деталей.

Blend Mode: чотири режими накладання контролюють, як текстури змішуються разом.

  • Mix: поєднує значення пікселів обох текстур. На чорному кольорі показує тільки текстуру матеріалу, на білому, тільки текстуру деталізації. Значення сірого створюють плавне накладання між ними.

  • Add: додає піксельні значення однієї текстури до іншої. На відміну від режиму змішування обидві текстури повністю змішуються на білих частинах маски, а не сірих. Оригінальна текстура в основному не змінюється на чорному кольорі

  • Sub: Віднімає значення пікселів однієї текстури з іншої. Друга текстура повністю віднімається на білих частинах маски з лише невеликим відніманням на чорних частинах, сірі частини є різними рівнями віднімання на основі точної текстури.

  • Mul: Множить номери каналів RGB для кожного пікселя від верхньої текстури зі значеннями для відповідного пікселя з нижньої текстури.

Albedo: Сюди ви вкладете текстуру альбедо, яку хочете змішати. Якщо в цьому гнізді нічого немає, він буде інтерпретуватися за замовчуванням як білий.

Normal: Тут ви вкладете текстуру нормалей, яку хочете змішати. Якщо в цьому гнізді нічого немає, це буде інтерпретуватися як плоска карта нормалей. Це можна використовувати, навіть якщо на матеріалі не включена карта нормалей.

UV1 та UV2

Godot підтримує два UV-канали на матеріал. Другий UV часто корисний для навколишньої оклюзії, або випромінювання (запечене світло). UV можна масштабувати і зміщувати, що корисно при використанні текстур, які повторюються.

Triplanar Mapping (Тристороннє накладання)

Тристороннє накладання підтримується як для UV1, так і для UV2. Це альтернативний спосіб визначення координат текстури, відомий також, як "Автотекстура". Вибраний по X, Y і Z зразок текстури поширюється за напрямком нормалі. Тристороннє накладання може виконуватися як у світовому просторі, так і в об'єктному.

На зображенні нижче ви можете побачити тристороннє накладання одного матеріалу на всі примітиви, завдяки чому текстура цегли має плавний перехід між ними.

../../_images/spatial_material25.png

World Triplanar (Триплощинна проєкція світового простору)

При використанні триплощинного відображення воно обчислюється в локальному просторі об’єкта. Ця опція дозволяє замість цього використовувати світовий простір.

Відбір проб

Фільтр

Метод фільтрації для текстур, які використовує матеріал. Перегляньте this page для повного списку опцій та їхнього опису.

Повторення

якщо текстури, використані матеріалом, повторюються, і як вони повторюються. Перегляньте this page для повного списку опцій та їхнього опису.

Тіні

Вимкнути отримання тіней

Тіні від інших об'єктів не будуть показані на цьому об'єкті.

Від тіні до непрозорості

Світло змінює альфа канал так щоби зробити видимою лише затінену частину об'єкта. Може знадобитись, якщо потрібно накласти тінь відео з камери в доповненій реальності.

Рекламний щит

Режим розголосника

Вмикає режим розголосника для малювання матеріалів. Визначає, як об'єкт повертається до камери:

  • Disabled: Режим розголосника вимкнений.

  • Увімкнено: режим Billboard увімкнено. Вісь -Z об'єкта завжди буде звернена до площини огляду камери.

  • Y-Billboard: вісь X об’єкта завжди буде вирівняно з площиною огляду камери.

  • Particle Billboard: найкраще підходить для систем частинок, оскільки дозволяє вказати flipbook animation.

../../_images/spatial_material9.webp

Розділ Particles Anim відображається лише в режимі білборда Particle Billboard.

Зберегти масштаб розголосника

Вмикає масштабування моделі в режимі розголосника.

Збільшити

Переміщує вершини об'єкта в напрямку, в якому вказують їх нормалі:

../../_images/spatial_material10.png

Це зазвичай використовується для створення дешевих контурів. Додайте другий прохід матеріалу, зробіть його чорним і незатіненим, виконайте зворотне висічення (Висічення переднього плану) та додайте трохи нарощування:

../../_images/spatial_material11.png

Примітка

Щоб Grow працював належним чином, сітка повинна мати з’єднані грані зі спільними вершинами або «плавне затінення». Якщо сітка має роз’єднані грані з унікальними вершинами або «плоске затінення», під час використання Grow сітка матиме розриви.

Зверніть увагу, що починаючи з Godot 4.5 та новіших версій, контури на основі буфера трафаретів доступні за допомогою режиму Outline stencil mode. Його можна використовувати як альтернативу Grow для контурів.

Перетворення

Незмінний розмір

Робить так, щоб об'єкт завжди відображався одного розміру, не залежно від того, як далеко він знаходиться. Може стати в нагоді, якщо потрібно додати якісь позначки чи написи до сцени (з відключеною перевіркою глибини та високим порядком відображення).

Розмір крапки

Цей параметр ефективний лише тоді, коли візуалізована геометрія складається з точок (як правило, це складається з трикутників, якщо імпортовано з програмного забезпечення для 3D-моделювання). Якщо так, тоді ці точки можна змінити (див. нижче).

Розмір крапки

Під час малювання крапок вкажіть розмір крапки в пікселях.

Використовуйте сліди частинок

Це доступно лише в програмах візуалізації Forward+ і Mobile, а не в системі візуалізації Compatibility.

Якщо значення true, це вмикає частини шейдера, необхідні для функціонування трейлів GPUParticles3D. Це також вимагає використання сітки з відповідним скінінгом, наприклад, RibbonTrailMesh або TubeTrailMesh. Увімкнення цієї функції поза матеріалами, що використовуються в сітках GPUParticles3D, призведе до порушення рендерингу матеріалів.

Використовуйте шкалу Z-кліпу

Масштабує об'єкт, що рендериться, у напрямку камери, щоб уникнути обрізання об такі речі, як стіни. Це призначено для об'єктів, які фіксовані відносно камери, таких як руки гравця, інструменти тощо. Освітлення та тіні продовжуватимуть працювати правильно, коли цей параметр налаштовано, але ефекти екранного простору, такі як SSAO та SSR, можуть працювати неправильно при менших масштабах. Тому намагайтеся підтримувати цей параметр якомога ближчим до 1.0.

Використовувати зміну поля зору

Перевизначає кут поля зору Camera3D (у градусах).

Примітка

Це працює так, ніби поле зору встановлено на Camera3D з Camera3D.keep_aspect, встановленим на Camera3D.KEEP_HEIGHT. Крім того, це може виглядати неправильно на неперспективній камері, де налаштування поля зору ігнорується.

Близькість і відстань зникають

Godot дозволяє матеріалам тьмяніти в залежності від наближення один до одного, а також залежно від відстані від глядача. Зникнення наближення корисне для таких ефектів, як м’які частинки або маса води з плавним змішуванням з берегами.

../../_images/spatial_material_proxfade.gif

Зникнення відстані корисне для світлових шахт або індикаторів, які присутні лише після певної відстані.

Пам’ятайте, що ввімкнення згасання на відстані або згасання на відстані в режимі Pixel Alpha увімкне альфа-змішування. Альфа-змішування більш інтенсивно вимагає GPU і може спричинити проблеми з сортуванням прозорості. Альфа-змішування також вимикає багато функцій матеріалу, наприклад здатність відкидати тіні.

Примітка

Щоб приховати персонажа, коли вони наближаються до камери, скористайтеся Pixel Dither або краще, Object Dither (що навіть швидше, ніж Pixel Dither).

Режим Pixel Alpha: фактична прозорість пікселя об’єкта змінюється залежно від відстані до камери. Це найбільший ефект, але примушує матеріал до конвеєра прозорості (що призводить, наприклад, до відсутності тіней).

../../_images/standart_material_distance_fade_pixel_alpha_mode.webp

Режим Pixel Dither: це приблизно наближає прозорість за допомогою візуалізації лише частки пікселів.

../../_images/standart_material_distance_fade_pixel_dither_mode.webp

Режим Змішання об’єкта: як і попередній режим, але розрахована прозорість однакова по всій поверхні об’єкта.

../../_images/standart_material_distance_fade_object_dither_mode.webp

Трафарет

Починаючи з версії Godot 4.5, Godot дозволяє матеріалам використовувати буфер трафаретів. Ця функція зазвичай використовується для створення контурів та рентгенівських ефектів, що може бути корисним для виділення об'єктів, особливо за стінами.

Режими Контур та Рентген призначають попередньо налаштований матеріал трафарету у властивості матеріалу Наступний прохід. Режим Налаштування можна використовувати для розширених ефектів.

../../_images/material_stencil.webp

Матеріали, що записуються в буфер трафарету, завжди малюються в прозорому проході, тому вони підлягають звичайним transparency limitations.

Примітка

Як і у випадку з властивістю Grow, для того, щоб контур трафарету працював належним чином, сітка повинна мати з'єднані грані зі спільними вершинами або "плавне затінення". Якщо сітка має нез'єднані грані з унікальними вершинами або "плоске затінення", під час використання контуру трафарету сітка виглядатиме так, ніби має прогалини.

Контури трафаретів відображаються подібно до властивості Grow, але виглядатимуть не однаково в кожному сценарії, особливо коли йдеться про перетини з непрозорими поверхнями.

Параметри матеріалу

Пріоритет рендера

Порядок візуалізації об'єктів може бути змінений, хоча це в основному корисно для прозорих об'єктів (або непрозорих об'єктів, які малюють глибину, але без кольору, наприклад, тріщини на підлозі).

Об’єкти сортуються за непрозорою/прозорою чергою, потім render_priority, причому вищий пріоритет малюється пізніше. Прозорі об'єкти також сортуються за глибиною.

Тестування глибини переважає над пріоритетом. Пріоритет сам по собі не може змусити непрозорі об’єкти малювати один над одним.

Наступний пропуск

Налаштування next_pass для матеріалу призведе до повторного рендерингу об’єкта з наступним матеріалом.

Матеріали сортуються за непрозорою/прозорою чергою, потім render_priority, причому вищий пріоритет малюється пізніше.

../../_images/next_pass.webp

Глибина перевірятиме рівність між обома матеріалами, якщо не використовуватиметься параметр зростання чи інші трансформації вершин. Кілька прозорих проходів повинні використовувати render_priority, щоб забезпечити правильний порядок.