Стандартный материал 3D и материал ORM 3D

Введение

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

В этом руководстве объясняются параметры, доступные в обоих материалах.

Добавить материалы на объект можно четырьмя способами: через свойство Material сетки, свойство Material узла (например MeshInstance3D), свойство Material Override узла или свойство Material Overlay.

../../_images/add_material.webp

Если вы добавите материал к самой сетке, каждый раз, когда эта сетка будет использоваться, она будет иметь этот материал. Если вы добавите материал к узлу, использующему сетку, материал будет использоваться только этим узлом, он также переопределит свойство материала сетки. Если материал добавлен в свойство Material Override узла, он будет использоваться только этим узлом. Он также будет переопределять обычное свойство материала узла и свойство материала сетки.

Свойство Material Overlay (Наложение материала) будет отображать материал поверх текущего материала, используемого сеткой. Например, это можно использовать для наложения эффекта прозрачного щита на сетку.

Настройки BaseMaterial3D

StandardMaterial3D имеет множество настроек, которые определяют вид материала. Все они находятся в категории BaseMaterial3D

../../_images/spatial_material1.webp

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

Прозрачность

По умолчанию материалы в Godot непрозрачны. Это быстро рендерится, но это означает, что материал не будет виден, даже если вы используете прозрачную текстуру в свойстве Альбедо > Текстура (или установите Альбедо > Цвет на прозрачный цвет).

Чтобы видеть сквозь материал, его нужно сделать прозрачным. Godot предлагает несколько режимов прозрачности:

  • Disabled: Материал непрозрачен. Это самый быстрый рендеринг, поддерживаются все функции рендеринга.

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

    • Alpha хорошо подходит для эффектов частиц и визуальных эффектов.

  • Alpha Scissor: Материал прозрачен. Полупрозрачные области, непрозрачность которых ниже Alpha Scissor Threshold, не отрисовываются (выше этой непрозрачности они отрисовываются как непрозрачные). Это быстрее для рендеринга, чем Alpha, и не вызывает проблем с сортировкой прозрачности. Недостатком является то, что это приводит к прозрачности «все или ничего» без возможности промежуточных значений. Материалы, использующие альфа-ножницы, могут отбрасывать тени.

    • Alpha Scissor идеально подходят для листвы и заборов, поскольку они имеют жесткие края и требуют правильной сортировки, чтобы выглядеть хорошо.

  • Alpha Hash: Материал прозрачен. Полупрозрачные области рисуются с помощью сглаживания. Это также прозрачность «все или ничего», но сглаживание помогает отображать частично непрозрачные области с ограниченной точностью в зависимости от разрешения области просмотра. Материалы, использующие альфа-хэш, могут отбрасывать тени.

    • Alpha Hash подходит для создания реалистичных волос, хотя стилизованные волосы лучше смотрятся с помощью alpha scissor.

  • Depth Pre-Pass: Сначала рендерит полностью непрозрачные пиксели объекта через непрозрачный конвейер, а затем рендерит остальные с alpha blending. Это позволяет сделать сортировку прозрачности в основном правильной (хотя и не полностью, так как частично прозрачные области могут по-прежнему демонстрировать неправильную сортировку). Материалы, использующие предварительный проход глубины, могут отбрасывать тени.

Примечание

Godot автоматически сделает материал прозрачным с помощью alpha blending, если выполняется любое из этих условий:

  • Установка режима прозрачности на Alpha (как описано здесь).

  • Установка режима смешивания, отличного от режима по умолчанию Mix

  • Включение Refraction, Proximity Fade или Distance Fade.

Сравнение прозрачности alpha blending (слева) и alpha scissor (справа):

../../_images/spatial_material12.png

Предупреждение

Прозрачность с Alpha-blended имеет несколько ограничений:

  • Материалы с Alpha-blended рендерятся значительно медленнее, особенно если они перекрываются.

  • Материалы с Alpha-blended могут демонстрировать проблемы сортировки, когда прозрачные поверхности накладываются друг на друга. Это означает, что поверхности могут отображаться в неправильном порядке, при этом поверхности вдали могут оказаться перед теми поверхностями, которые на самом деле ближе к камере.

  • Материалы с Alpha-blended не отбрасывают тени, хотя могут их принимать.

  • Материалы с Alpha-blended составом не появляются ни в каких отражениях (кроме отражательных зондов).

  • Отражения в экранном пространстве и резкие отражения SDFGI не отображаются на материалах с alpha-blended. Когда включен SDFGI, грубые отражения используются в качестве резерва независимо от шероховатости материала.

Прежде чем использовать режим прозрачности Alpha, подумайте, не подходит ли вам другой режим прозрачности.

Сглаживание альфа-канала

Примечание

Это свойство видно только в том случае, если режим прозрачности — Alpha Scissor или Alpha Hash.

Хотя alpha scissor и alpha hash-материалы быстрее рендерятся, чем материалы alpha-blended, они демонстрируют жесткие края между непрозрачными и прозрачными областями. Хотя возможно использовать постобработку на основе техник сглаживания, например FXAA и TAA, это не всегда желательно, поскольку эти техники, как правило, делают конечный результат более размытым или демонстрируют артефакты двоения.

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

  • Disabled: Без альфа-сглаживания. Края прозрачных материалов будут выглядеть сглаженными, если не используется решение сглаживания на основе постобработки.

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

  • Alpha Edge Clip: приводит к резкому, но все еще сглаженному переходу между непрозрачными и прозрачными областями. Также известно как «alpha to coverage + alpha to one".

Если режим alpha antialiasing установлен на Alpha Edge Blend или Alpha Edge Clip, новое свойство Alpha Antialiasing Edge становится видимым ниже в инспекторе. Это свойство управляет пороговым значением, ниже которого пиксели должны быть сделаны прозрачными. Хотя вы уже определили пороговое значение alpha scissor (только при использовании Alpha Scissor), этот дополнительный порог используется для плавного перехода между непрозрачными и прозрачными пикселями. Alpha Antialiasing Edge должно всегда быть установлено на значение, которое строго ниже порогового значения alpha scissor. Значение по умолчанию 0.3 является разумным значением с alpha scissor порогового значения 0.5, но не забудьте настроить этот край alpha antialiasing при изменении порогового значения alpha scissor.

Если вы считаете, что эффект сглаживания недостаточно эффективен, попробуйте увеличить Alpha Antialiasing Edge, убедившись, что он ниже Alpha Scissor Threshold (если материал использует alpha scissor). С другой стороны, если вы заметили, что внешний вид текстуры заметно меняется по мере приближения камеры к материалу, попробуйте уменьшить Alpha Antialiasing Edge.

Важно

Для достижения наилучших результатов MSAA 3D следует установить не менее 2× в настройках проекта при использовании alpha antialiasing. Это связано с тем, что эта функция использует альфа-покрытие (alpha to coverage), которое является функцией, предоставляемой MSAA.

Без MSAA к краям материала применяется фиксированный шаблон дизеринга, который не очень эффективен для сглаживания краев (хотя все равно может немного помочь).

Режим смешивания

Управляет режимом наложения материала. Имейте в виду, что любой режим, кроме Смешивания, заставляет объект проходить через прозрачный конвейер.

  • Mix: Режим наложения по умолчанию, альфа управляет тем, насколько объект виден.

  • Add (Аддитивный): Итоговый цвет объекта добавляется к цвету экрана. Полезно для бликов и огненных эффектов.

  • Sub: Окончательный цвет объекта вычитается из цвета экрана.

  • Mul (Мультипликативный): Итоговый цвет объекта умножается на цвет экрана.

../../_images/spatial_material8.png

Режим отбраковки

Определяет, какая сторона объекта не рисуется при отрисовке задних граней:

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

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

  • Disabled: Используется для объектов, которые являются двусторонними (не производится выбраковка).

Примечание

По умолчанию, в Blender отключено отсечение невидимых полигонов у материалов и Blender будет экспортировать материалы так чтобы соответствовать тому как они отрисовываются в Blender. Это значит что у материалов в Godot отсечение материалов установлено на Отключить. Это может уменьшить производительность при отрисовке невидимых граней, даже когда они были отсечены другими гранями. Что бы решить это, включите Отсечение невидимых граней во вкладке "Материалы" в Blender, после этого экспортируйте в 3d-сцену в формате glTF снова.

Режим прорисовки глубины

Указывает, когда должен происходить рендеринг глубины.

  • Opaque Only (default): Глубина рисуется только для непрозрачных объектов.

  • Всегда: Отрисовка глубины рисуется как для непрозрачных, так и для прозрачных объектов.

  • Never (Никогда): Отрисовка глубины не выполняется (не путать с опцией «No Depth Test» ниже).

  • Предварительный проход глубины: Для прозрачных объектов сначала выполняется непрозрачный проход с непрозрачными частями, затем прозрачность прорисовывается выше. Используйте этот вариант с прозрачной травой или листвой деревьев.

../../_images/material_depth_draw.png

Без теста глубины

Для того чтобы показывать близкие объекты над дальними объектами, проводится тест глубины. Его выключение ведёт к тому что объекты будут показывать над (или под) всеми остальными.

Его отключение имеет смысл для отрисовки индикаторов в мировом пространстве, и отлично работает в связке со свойством Render Priority на Материале (смотрите внизу данной страницы).

../../_images/spatial_material3.png

Шейдинг (Затенение)

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

Материалы поддерживают три режима затенения: Per-Pixel, Per-Vertex и Unshaded.

Три сферы, демонстрирующие режимы «Per-Pixel», «Per-Vertex» и «Unshaded».

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

Режим Per-Vertex затенения, часто называемый «вершинным затенением» или «вершинным освещением», вместо этого вычисляет освещение один раз для каждой вершины и интерполирует результат между каждым пикселем.

На слабых и мобильных устройствах использование расчета освещения по вершинам значительно повышает производительность. При рендеринге нескольких слоёв прозрачности (например в системах частиц) использование затенения по вершинам улучшает производительность, особенно при близком положении камеры к частицам.

Вы также можете использовать повершинное (per-vertex) освещение, чтобы добиться ретро-стиля.

Два куба с текстурой кирпича, один затененный и один незатененный.

Текстура из AmbientCG

Режим затенения Unshaded вообще не рассчитывает освещение. Вместо этого напрямую выводится цвет Albedo. Освещение вообще не повлияет на материал, а незатененные материалы будут выглядеть значительно ярче затененных.

Рендеринг без затенения полезен для некоторых визуальных эффектов. Если нужна максимальная производительность, его также можно использовать для частиц, или для бюджетных или мобильных устройств.

Режим смешения

Задаёт алгоритм для диффузного рассеяния света при попадании на объект. По умолчанию используется Burley. Также доступны другие режимы:

  • Burley: Режим по умолчанию, оригинальный алгоритм диффузии Disney Principled PBS.

  • Lambert: Не подвержен влиянию шероховатости.

  • Lambert Wrap: Расширяет Lambert для охвата более 90 градусов при увеличении шероховатости. Отлично подходит для волос и моделирования дешевого подповерхностного рассеяния. Эта реализация экономит энергию.

  • Toon (Стилизованный): Создает резкие границы освещения со сглаживанием, зависящим от шероховатости. Для лучшего эффекта рекомендуется отключить вклад неба в настройках окружающего освещения среды или отключить окружающее освещение в StandardMaterial3D.

../../_images/spatial_material6.webp

Зеркальный режим

Определяет, как будет отображаться спекулярный шар. Спекулярное пятно представляет собой форму источника света, отраженного от объекта.

  • SchlickGGX: Наиболее распространенная модель, используемая в современных PBR-движках.

  • Toon: Создает toon блоб, размер которого меняется в зависимости от шероховатости.

  • Disabled: Иногда блоб мешает. Прочь!

../../_images/spatial_material7.webp

Отключить окружающие освещение

Заставляет объект не принимать окружающий свет который бы иначе осветил его.

Отключить туман

Делает объект не подверженным глубинному или объемному туману. Это полезно для частиц или других аддитивно смешанных материалов, которые в противном случае показали бы форму сетки (даже в местах, где она была бы невидима без тумана).

Цвет вершин

Этот параметр позволяет выбрать обработку цветов вершин, импортированных из 3D-редактора. По умолчанию они игнорируются.

../../_images/spatial_material4.webp

Использовать как Альбедо

Использование этого параметра заставляет цвет вершин использовать цвет альбедо.

Является SRGB

Большинство 3D-редакторов экспортируют цвета вершин в sRGB, поэтому включение этой опции обеспечит их корректное отображение.

Альбедо

Albedo - это базовый цвет материала, на который опираются все остальные настройки. Когда установлено значение Unshaded, это единственный видимый цвет. В предыдущих версиях Godot этот канал назывался Diffuse. Изменение названия произошло в основном потому, что в PBR (Physically Based Rendering) этот цвет влияет на гораздо большее количество вычислений, чем просто диффузный путь освещения.

Альбедо цвета и текстуры можно использовать вместе, так как они умножаются.

Альфа-канал в цвете альбедо и текстуре также используется для прозрачности объекта. Если вы используете цвет или текстуру с альфа-каналом, убедитесь, что вы включили прозрачность или alpha scissoring*, чтобы они работали.

Металлический

Godot использует металлическую модель вместо конкурирующих моделей из-за ее простоты. Этот параметр определяет, насколько отражающим является материал. Чем больше отражение, тем меньше рассеянный/внешний свет влияет на материал и тем больше света отражается. Эта модель называется "энергосберегающей".

Параметр Specular - это общая величина для отражения (в отличие от Metallic, этот параметр не экономит энергию, поэтому оставьте его на 0.5 и не трогайте его, если вам это не нужно).

Минимальная внутренняя отражательная способность составляет 0,04, поэтому невозможно сделать материал полностью неотражающим, как и в реальной жизни.

../../_images/spatial_material13.png

Шероховатость

Roughness влияет на то, как происходит отражение. Значение 0 делает его идеальным зеркалом, а значение 1 полностью размывает отражение (имитируя естественную микрошлифовку). Большинство распространенных типов материалов могут быть получены при правильном сочетании Металлик и Шероховатость.

../../_images/spatial_material14.png

Излучение

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

../../_images/spatial_material15.png

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

Нормальное отображение (Англа: нормал маппинг) позволяет задать текстуру, которая отображает более мелкие детали формы. Это не изменяет геометрию, только угол падения света. В Godot используются только красный и зеленый каналы карт нормалей для лучшего сжатия и более широкой совместимости.

../../_images/spatial_material16.png

Примечание

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), ничто не сравнится с качеством хорошо пропеченной карты AO. Рекомендуется запекать окружающее затенение всегда, когда это возможно.

../../_images/spatial_material19.png

Высота

Назначение карты высоты материалу запускает трассировку лучей для имитации смещения углублений вдоль направления взгляда. Это создает лишь иллюзию глубины без добавления реальной геометрии. Для физических коллизий (например, рельефа) используйте HeightMapShape3D. Эффект может не работать для сложных объектов, но создает реалистичную глубину для текстур. Для лучших результатов используйте Высоту вместе с картой нормалей.

../../_images/spatial_material20.png

Подповерхностное рассеяние

Доступно только в рендерере Forward+, но не в Mobile или Compatibility.

Этот эффект имитирует свет, который проникает через поверхность объекта, рассеивается, а затем выходит наружу. Это полезно для создания реалистичной кожи, мрамора, цветных жидкостей и т.д.

../../_images/spatial_material21.png

Подсветка

Это определяет, сколько света с освещенной стороны (видимой для света) передается на темную сторону (противоположную от света). Это хорошо работает для тонких объектов, таких как листья растений, трава, человеческие уши и т. д.

Преломление (рефрацкция)

При включении преломления Godot получает информацию из-за отображаемого объекта, искажая прозрачность подобно реальному преломлению света.

Не забудьте использовать прозрачную текстуру альбедо (или уменьшить альфа-канал цвета альбедо), чтобы сделать преломление видимым, поскольку для создания видимого эффекта преломление зависит от прозрачности.

Преломление также учитывает шероховатость (Roughness) материала. Более высокие значения шероховатости сделают объекты за преломлением более размытыми, что имитирует поведение в реальной жизни. Если вы не видите позади объекта, когда включено преломление и снижена прозрачность альбедо, уменьшите значение Roughness материала.

Карту нормалей можно дополнительно указать в свойстве Refraction Texture, чтобы можно было искажать направление преломления на попиксельной основе.

../../_images/spatial_material23.png

Примечание

Рефракция (Refraction) реализована как эффект экранного пространства и заставляет материал быть прозрачным. Это делает эффект относительно быстрым, но это приводит к некоторым ограничениям:

  • Могут возникнуть такие проблемы Transparency sorting.

  • Преломляющий (refractive) материал не может преломляться сам на себя или на другие прозрачные материалы. Преломляющий материал за другим прозрачным материалом будет невидим.

  • Объекты за пределами экрана не могут появиться в преломлении. Это наиболее заметно при высоких значениях силы преломления.

  • Непрозрачные материалы перед преломляющим материалом будут выглядеть имеющими «преломленные» края, хотя на самом деле это не так.

Деталь

Godot позволяет использовать вторичное альбедо и карты нормалей для создания детальной текстуры, которую можно смешивать многими способами. Комбинируя это со вторичными ультрафиолетовыми или трехплоскостными режимами, можно получить много интересных текстур.

../../_images/spatial_material24.png

Существует несколько настроек, которые управляют тем, как используется детализация.

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

Режим наложения: Эти четыре режима управляют тем, как текстуры смешиваются вместе.

  • Смешивание: Объединяет значения пикселей обеих текстур. В черном цвете отображается только текстура материала, в белом - только текстура деталей. Значения серого создают плавное смешение между ними.

  • Добавить: Добавляет пиксельные значения одной текстуры к другой. В отличие от режима смешивания обе текстуры полностью смешиваются на белых участках маски и не смешиваются на серых участках. Оригинальная текстура в основном остается неизменной на черных участках

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

  • Mul: Перемножает номера каналов RGB для каждого пикселя из верхней текстуры со значениями для соответствующего пикселя из нижней текстуры.

Albedo: Поместите сюда текстуру альбедо, которую вы хотите смешать. Если этот слот останется пустым, то цвет будет белым по умолчанию.

Normal: Сюда помещается нормальная текстура, которую вы хотите смешать. Если в этом слоте ничего нет, он будет интерпретироваться как плоская карта нормалей. Это можно использовать, даже если в материале не включена карта нормалей.

UV1 и UV2

Godot поддерживает два UV канала на материал. Вторичный UV часто полезен для окружающей окклюзии или излучения (запеченный свет). UV можно масштабировать и смещать, что полезно при использовании повторяющихся текстур.

Трёхплоскостное наложение

Трёхплоскостное наложение выполнимо как для UV1, так и для UV2. Это другой способ определения текстурных координат, известный также как "автотекстурирование". Текстуры выбираются по X, Y и Z и смешиваются по нормали. Трёхплоскостное наложение может быть выполнено как в местных, так и в мировых координатах.

На изображении ниже видно, что все примитивы имеют один и тот же материал с мировым трипланаром, поэтому текстура кирпича плавно переходит между ними.

../../_images/spatial_material25.png

Мировая трипланарность

При трипланарном наложении текстур по умолчанию используется локальное пространство объекта. Эта опция переключает расчёт в мировое пространство.

Сэмплинг

Фильтр

Метод фильтрации текстур, используемых материалом. Полный список опций и их описание см. на этой странице.

Повторить

повторяются ли текстуры, используемые материалом, и как они повторяются. См. эту страницу для полного списка опций и их описания.

Тени

Не получать тени

Заставляет объект не принимать тени которые иначе были бы отброшены на него.

Используйте тень для непрозрачности

Освещение изменяет альфа-канал так, что затененные области становятся непрозрачными, а незатененные - прозрачными. Полезно для наложения теней на камеру в AR.

Billboard

Режим рекламного щита

Включает режим рекламного щита для рисования материалов. Это контролирует, как объект смотрит в камеру:

  • Отключено: Режим рекламного щита отключен.

  • Enabled (Включено): Режим Billboard активирован. Ось -Z объекта всегда будет обращена к плоскости камеры.

  • Y-Billboard: Ось X объекта всегда будет выровнена с плоскостью камеры.

  • Particle Billboard (Частицы): Оптимален для систем частиц, так как позволяет настраивать анимацию flipbook.

../../_images/spatial_material9.webp

Раздел Particles Anim виден только в том случае, если режим billboard установлен на Particle Billboard.

Сохранять масштаб рекламного щита

Включает масштабирование сетки в режиме билборда.

Расти

Увеличивает вершины объекта в направлении, указанном их нормалями:

../../_images/spatial_material10.png

Это обычно используется для создания дешевых контуров. Добавьте второй проход по материалу, сделайте его черным и незатененным, сделайте обратную обработку (Cull Front) и добавьте растушевку:

../../_images/spatial_material11.png

Примечание

Чтобы Grow работал как ожидается, сетка должна иметь соединенные грани с общими вершинами или «гладкое затенение». Если сетка имеет разъединенные грани с уникальными вершинами или «плоское затенение», то при использовании Grow сетка будет выглядеть с зазорами.

Преобразование

Фиксированный размер

Этот флаг заставляет объект рисоваться в одинаковом размере вне зависимости от расстояния. Это полезно для индикаторов (без теста глубины и высокого приоритета отрисовки) и некоторых типов билбордов.

Использовать размер точки

Эта опция работает только с геометрией из точек (обычно импортированные модели состоят из треугольников). В этом случае размер точек можно изменять.

Размер точки

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

Пропускание света

Это определяет, сколько света с освещенной стороны (видимой для света) передается на темную сторону (противоположную от света). Это хорошо работает для тонких объектов, таких как листья растений, трава, человеческие уши и т. д.

../../_images/spatial_material22.png

Затухание по близости и расстоянию

Godot позволяет материалам плавно исчезать при приближении объектов друг к другу или при удалении от камеры. Затухание по близости полезно для эффектов вроде мягких частиц или плавного перехода воды к берегам.

../../_images/spatial_material_proxfade.gif

Затухание на расстоянии полезно для световых лучей или индикаторов, которые появляются только после определенного расстояния.

Помните, что включение режима затухания на расстоянии или затухания на расстоянии с помощью Pixel Alpha включает альфа-смешивание (alpha blending). Альфа-смешивание более интенсивно использует 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

Режим Object Dither: как и предыдущий режим, но рассчитанная прозрачность одинакова по всей поверхности объекта.

../../_images/standart_material_distance_fade_object_dither_mode.webp

Настройки материала

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

Порядок рендеринга объектов можно изменить, хотя это в основном полезно для прозрачных объектов (или непрозрачных объектов, которые выполняют прорисовку глубины, но не прорисовку цвета, например трещины на полу).

Объекты сортируются по очереди непрозрачных/прозрачных, затем render_priority, с более высоким приоритетом, отрисовываемым позже. Прозрачные объекты также сортируются по глубине.

Тестирование глубины перекрывает приоритет. Приоритет сам по себе не может заставить непрозрачные объекты рисоваться друг над другом.

Следующий проход

Установка next_pass для материала приведет к повторной визуализации объекта с использованием этого следующего материала.

Материалы сортируются по непрозрачной/прозрачной очереди, затем render_priority, причем более приоритетные отрисовываются позже.

../../_images/next_pass.webp

Глубина будет проверяться одинаково для обоих материалов, если не используются настройки роста или другие преобразования вершин. Несколько прозрачных проходов должны использовать render_priority для обеспечения правильного порядка.