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.

BaseMaterial3D

Успадковує: Material < Resource < RefCounted < Object

Успадковано від: ORMMaterial3D, StandardMaterial3D

Абстрактний базовий клас для визначення властивостей 3D-рендерінгу сіток.

Опис

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

Посібники

Властивості

Color

albedo_color

Color(1, 1, 1, 1)

Texture2D

albedo_texture

bool

albedo_texture_force_srgb

false

bool

albedo_texture_msdf

false

float

alpha_antialiasing_edge

AlphaAntiAliasing

alpha_antialiasing_mode

float

alpha_hash_scale

float

alpha_scissor_threshold

float

anisotropy

0.0

bool

anisotropy_enabled

false

Texture2D

anisotropy_flowmap

bool

ao_enabled

false

float

ao_light_affect

0.0

bool

ao_on_uv2

false

Texture2D

ao_texture

TextureChannel

ao_texture_channel

0

Color

backlight

Color(0, 0, 0, 1)

bool

backlight_enabled

false

Texture2D

backlight_texture

bool

bent_normal_enabled

false

Texture2D

bent_normal_texture

bool

billboard_keep_scale

false

BillboardMode

billboard_mode

0

BlendMode

blend_mode

0

float

clearcoat

1.0

bool

clearcoat_enabled

false

float

clearcoat_roughness

0.5

Texture2D

clearcoat_texture

CullMode

cull_mode

0

DepthDrawMode

depth_draw_mode

0

DepthTest

depth_test

0

Texture2D

detail_albedo

BlendMode

detail_blend_mode

0

bool

detail_enabled

false

Texture2D

detail_mask

Texture2D

detail_normal

DetailUV

detail_uv_layer

0

DiffuseMode

diffuse_mode

0

bool

disable_ambient_light

false

bool

disable_fog

false

bool

disable_receive_shadows

false

bool

disable_specular_occlusion

false

float

distance_fade_max_distance

10.0

float

distance_fade_min_distance

0.0

DistanceFadeMode

distance_fade_mode

0

Color

emission

Color(0, 0, 0, 1)

bool

emission_enabled

false

float

emission_energy_multiplier

1.0

float

emission_intensity

bool

emission_on_uv2

false

EmissionOperator

emission_operator

0

Texture2D

emission_texture

bool

fixed_size

false

float

fov_override

75.0

bool

grow

false

float

grow_amount

0.0

bool

heightmap_deep_parallax

false

bool

heightmap_enabled

false

bool

heightmap_flip_binormal

false

bool

heightmap_flip_tangent

false

bool

heightmap_flip_texture

false

int

heightmap_max_layers

int

heightmap_min_layers

float

heightmap_scale

5.0

Texture2D

heightmap_texture

float

metallic

0.0

float

metallic_specular

0.5

Texture2D

metallic_texture

TextureChannel

metallic_texture_channel

0

float

msdf_outline_size

0.0

float

msdf_pixel_range

4.0

bool

no_depth_test

false

bool

normal_enabled

false

float

normal_scale

1.0

Texture2D

normal_texture

Texture2D

orm_texture

int

particles_anim_h_frames

bool

particles_anim_loop

int

particles_anim_v_frames

float

point_size

1.0

float

proximity_fade_distance

1.0

bool

proximity_fade_enabled

false

bool

refraction_enabled

false

float

refraction_scale

0.05

Texture2D

refraction_texture

TextureChannel

refraction_texture_channel

0

float

rim

1.0

bool

rim_enabled

false

Texture2D

rim_texture

float

rim_tint

0.5

float

roughness

1.0

Texture2D

roughness_texture

TextureChannel

roughness_texture_channel

0

ShadingMode

shading_mode

1

bool

shadow_to_opacity

false

SpecularMode

specular_mode

0

Color

stencil_color

Color(0, 0, 0, 1)

StencilCompare

stencil_compare

0

int

stencil_flags

0

StencilMode

stencil_mode

0

float

stencil_outline_thickness

0.01

int

stencil_reference

1

bool

subsurf_scatter_enabled

false

bool

subsurf_scatter_skin_mode

false

float

subsurf_scatter_strength

0.0

Texture2D

subsurf_scatter_texture

float

subsurf_scatter_transmittance_boost

0.0

Color

subsurf_scatter_transmittance_color

Color(1, 1, 1, 1)

float

subsurf_scatter_transmittance_depth

0.1

bool

subsurf_scatter_transmittance_enabled

false

Texture2D

subsurf_scatter_transmittance_texture

TextureFilter

texture_filter

3

bool

texture_repeat

true

Transparency

transparency

0

bool

use_fov_override

false

bool

use_particle_trails

false

bool

use_point_size

false

bool

use_z_clip_scale

false

Vector3

uv1_offset

Vector3(0, 0, 0)

Vector3

uv1_scale

Vector3(1, 1, 1)

bool

uv1_triplanar

false

float

uv1_triplanar_sharpness

1.0

bool

uv1_world_triplanar

false

Vector3

uv2_offset

Vector3(0, 0, 0)

Vector3

uv2_scale

Vector3(1, 1, 1)

bool

uv2_triplanar

false

float

uv2_triplanar_sharpness

1.0

bool

uv2_world_triplanar

false

bool

vertex_color_is_srgb

false

bool

vertex_color_use_as_albedo

false

float

z_clip_scale

1.0

Методи

bool

get_feature(feature: Feature) const

bool

get_flag(flag: Flags) const

Texture2D

get_texture(param: TextureParam) const

void

set_feature(feature: Feature, enable: bool)

void

set_flag(flag: Flags, enable: bool)

void

set_texture(param: TextureParam, texture: Texture2D)


Переліки

enum TextureParam: 🔗

TextureParam TEXTURE_ALBEDO = 0

Текстура, що визначає колір кожного пікселя.

TextureParam TEXTURE_METALLIC = 1

Текстура, що визначає металеве значення на піксель.

TextureParam TEXTURE_ROUGHNESS = 2

Текстура, що визначає значення шорсткості на піксель.

TextureParam TEXTURE_EMISSION = 3

Текстура, що визначає колір випромінювання на піксель.

TextureParam TEXTURE_NORMAL = 4

Текстура, що визначає попіксельний нормальний вектор.

TextureParam TEXTURE_BENT_NORMAL = 18

Текстура, що визначає вектор нормалі зігнутого вигину для кожного пікселя.

TextureParam TEXTURE_RIM = 5

Текстура, що визначає значення обода на піксель.

TextureParam TEXTURE_CLEARCOAT = 6

Текстура, що визначає значення прозорого покриття на піксель.

TextureParam TEXTURE_FLOWMAP = 7

Текстура, що визначає напрямок карти потоку на піксель для використання з anisotropy.

TextureParam TEXTURE_AMBIENT_OCCLUSION = 8

Текстура, що вказує значення навколишнього перекриття на піксель.

TextureParam TEXTURE_HEIGHTMAP = 9

Текстура, що визначає висоту пікселя.

TextureParam TEXTURE_SUBSURFACE_SCATTERING = 10

Текстура, що визначає попіксельне підповерхневе розсіювання.

TextureParam TEXTURE_SUBSURFACE_TRANSMITTANCE = 11

Текстура, що визначає коефіцієнт пропускання на піксель для підповерхневого розсіювання.

TextureParam TEXTURE_BACKLIGHT = 12

Текстура, що визначає колір підсвічування кожного пікселя.

TextureParam TEXTURE_REFRACTION = 13

Текстура, що визначає силу заломлення на піксель.

TextureParam TEXTURE_DETAIL_MASK = 14

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

TextureParam TEXTURE_DETAIL_ALBEDO = 15

Текстура, що визначає колір деталей на піксель.

TextureParam TEXTURE_DETAIL_NORMAL = 16

Текстура, що визначає попіксельну деталізацію, звичайна.

TextureParam TEXTURE_ORM = 17

Текстура зберігає навколишнє перекриття, шорсткість і металік.

TextureParam TEXTURE_MAX = 19

Представляє розмір переліку TextureParam.


enum TextureFilter: 🔗

TextureFilter TEXTURE_FILTER_NEAREST = 0

Фільтр текстури зчитує дані лише з найближчого пікселя. Через це текстура виглядає пікселізованою зблизька та зернистою здалеку (оскільки міп-мапи не прочитуються).

TextureFilter TEXTURE_FILTER_LINEAR = 1

Фільтр текстури виконує згладжування між 4 найближчими пікселями. Завдяки цьому текстура виглядає гладкою зблизька, а здалеку — зернистою (оскільки міп-мапи не зчитуються).

TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 2

Фільтр текстур зчитує з найближчого пікселя та змішує між двома найближчими картами mipmap (або використовує найближчу карту mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true). Це робить текстуру піксельною зблизька та гладкою на відстані.

TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 3

Фільтр текстур змішує найближчі 4 пікселі з найближчими 2 картами mipmap (або використовує найближчу карту mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true). Це робить текстуру гладкою зблизька та гладкою на відстані.

TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 4

Фільтр текстури зчитує з найближчого пікселя та змішує 2 mipmap (або використовує найближче mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true) на основі кута між поверхнею та вид камери. Це робить текстуру піксельною зблизька та гладкою на відстані. Анізотропна фільтрація покращує якість текстури на поверхнях, які знаходяться майже на одній лінії з камерою, але трохи повільніше. Рівень анізотропної фільтрації можна змінити, налаштувавши ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.

TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 5

Фільтр текстури змішує найближчі 4 пікселі та змішує 2 mipmap (або використовує найближче mipmap, якщо ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter має значення true) на основі кута між поверхнею і вигляд камери. Це робить текстуру гладкою зблизька та гладкою на відстані. Анізотропна фільтрація покращує якість текстури на поверхнях, які знаходяться майже на одній лінії з камерою, але трохи повільніше. Рівень анізотропної фільтрації можна змінити, налаштувавши ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level.

TextureFilter TEXTURE_FILTER_MAX = 6

Представляє розмір переліку TextureFilter.


enum DetailUV: 🔗

DetailUV DETAIL_UV_1 = 0

Використовуйте UV з детальною текстурою.

DetailUV DETAIL_UV_2 = 1

Використовуйте UV2 із детальною текстурою.


enum Transparency: 🔗

Transparency TRANSPARENCY_DISABLED = 0

Матеріал не буде використовувати прозорість. Це найшвидший для візуалізації.

Transparency TRANSPARENCY_ALPHA = 1

Матеріал використовуватиме значення альфа текстури для прозорості. Це найповільніше для візуалізації та вимикає відтворення тіні.

Transparency TRANSPARENCY_ALPHA_SCISSOR = 2

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

Transparency TRANSPARENCY_ALPHA_HASH = 3

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

Transparency TRANSPARENCY_ALPHA_DEPTH_PRE_PASS = 4

Матеріал використовуватиме значення альфа текстури для прозорості, але відкидає фрагменти з альфа менше 0,99 під час попереднього проходу глибини та фрагменти з альфа менше 0,1 під час проходу тіні. Це також підтримує відкидання тіней.

Transparency TRANSPARENCY_MAX = 5

Представляє розмір переліку Transparency.


enum ShadingMode: 🔗

ShadingMode SHADING_MODE_UNSHADED = 0

Об'єкт не отримає тіні. Це найшвидший спосіб візуалізації, але він вимикає всі взаємодії зі світлом.

ShadingMode SHADING_MODE_PER_PIXEL = 1

Об’єкт буде затінено на піксель. Корисно для реалістичних ефектів затінення.

ShadingMode SHADING_MODE_PER_VERTEX = 2

Об’єкт буде заштриховано для кожної вершини. Корисно, коли вам потрібні дешевші шейдери, і вам не важлива візуальна якість.

ShadingMode SHADING_MODE_MAX = 3

Представляє розмір переліку ShadingMode.


enum Feature: 🔗

Feature FEATURE_EMISSION = 0

Константа для налаштування emission_enabled.

Feature FEATURE_NORMAL_MAPPING = 1

Константа для налаштування normal_enabled.

Feature FEATURE_RIM = 2

Константа для налаштування rim_enabled.

Feature FEATURE_CLEARCOAT = 3

Константа для налаштування clearcoat_enabled.

Feature FEATURE_ANISOTROPY = 4

Константа для налаштування anisotropy_enabled.

Feature FEATURE_AMBIENT_OCCLUSION = 5

Константа для налаштування ao_enabled.

Feature FEATURE_HEIGHT_MAPPING = 6

Константа для налаштування heightmap_enabled.

Feature FEATURE_SUBSURFACE_SCATTERING = 7

Константа для налаштування subsurf_scatter_enabled.

Feature FEATURE_SUBSURFACE_TRANSMITTANCE = 8

Константа для налаштування subsurf_scatter_transmittance_enabled.

Feature FEATURE_BACKLIGHT = 9

Константа для параметра backlight_enabled.

Feature FEATURE_REFRACTION = 10

Константа для налаштування refraction_enabled.

Feature FEATURE_DETAIL = 11

Константа для налаштування detail_enabled.

Feature FEATURE_BENT_NORMAL_MAPPING = 12

Константа для налаштування bent_normal_enabled.

Feature FEATURE_MAX = 13

Представляє розмір переліку Feature.


enum BlendMode: 🔗

BlendMode BLEND_MODE_MIX = 0

Режим змішування за замовчуванням. Колір об'єкта змішується з фоном на основі значення альфа об'єкта.

BlendMode BLEND_MODE_ADD = 1

Колір об'єкта додається до фону.

BlendMode BLEND_MODE_SUB = 2

Колір об'єкта віднімається від фону.

BlendMode BLEND_MODE_MUL = 3

Колір об'єкта множиться на фон.

BlendMode BLEND_MODE_PREMULT_ALPHA = 4

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


enum AlphaAntiAliasing: 🔗

AlphaAntiAliasing ALPHA_ANTIALIASING_OFF = 0

Вимикає альфа-згладжування для матеріалу.

AlphaAntiAliasing ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE = 1

Вмикає AlphaToCoverage. Альфа-значення в матеріалі передаються до маски зразка AntiAliasing.

AlphaAntiAliasing ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE = 2

Вмикає AlphaToCoverage і змушує всі ненульові значення альфа мати значення 1. Альфа-значення в матеріалі передаються до маски зразка AntiAliasing.


enum DepthDrawMode: 🔗

DepthDrawMode DEPTH_DRAW_OPAQUE_ONLY = 0

Типовий режим малювання глибини. Глибина малюється лише для непрозорих об’єктів під час непрозорого попереднього проходу (якщо є) і під час непрозорого проходу.

DepthDrawMode DEPTH_DRAW_ALWAYS = 1

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

Примітка: це не впливає на те, чи включено прозорі об’єкти до попереднього проходу глибини чи ні. Для цього див. Transparency.

DepthDrawMode DEPTH_DRAW_DISABLED = 2

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


enum DepthTest: 🔗

DepthTest DEPTH_TEST_DEFAULT = 0

Тест глибини відкине піксель, якщо він знаходиться позаду інших пікселів.

DepthTest DEPTH_TEST_INVERTED = 1

Тест глибини відкидає піксель, якщо він знаходиться перед іншими пікселями. Корисно для трафаретних ефектів.


enum CullMode: 🔗

CullMode CULL_BACK = 0

Режим відбракування за замовчуванням. Задня сторона об’єкта відбирається, коли її не видно. Трикутники тильної сторони будуть видалені, якщо дивитися в камеру. Це призводить до того, що малюється лише лицьова сторона трикутників. Для сіток із закритою поверхнею це означає, що буде видно лише зовнішню частину сітки.

CullMode CULL_FRONT = 1

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

CullMode CULL_DISABLED = 2

Вибракування обличчя не проводиться; будуть видні як передня, так і задня сторони.


enum Flags: 🔗

Flags FLAG_DISABLE_DEPTH_TEST = 0

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

Flags FLAG_ALBEDO_FROM_VERTEX_COLOR = 1

Встановіть ALBEDO на колір кожної вершини, указаний у сітці.

Flags FLAG_SRGB_VERTEX_COLOR = 2

Кольори вершин вважаються збереженими в нелінійному кодуванні sRGB і перетворюються на лінійне кодування під час рендерингу. Див. також vertex_color_is_srgb.

Примітка: Ефективно лише при використанні методів рендерингу Forward+ та Mobile.

Flags FLAG_USE_POINT_SIZE = 3

Використовує розмір точки, щоб змінити розмір примітивних точок. Також змінюється пошук текстури альбедо на використання POINT_COORD замість UV.

Flags FLAG_FIXED_SIZE = 4

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

Flags FLAG_BILLBOARD_KEEP_SCALE = 5

Шейдер збереже встановлений масштаб для сітки. Інакше втрачається масштаб при білборді. Застосовується, лише коли billboard_mode має значення BILLBOARD_ENABLED.

Flags FLAG_UV1_USE_TRIPLANAR = 6

Використовуйте триплощинний пошук текстури для всіх пошуків текстури, які зазвичай використовують UV.

Flags FLAG_UV2_USE_TRIPLANAR = 7

Використовуйте триплановий пошук текстури для всіх пошуків текстури, які зазвичай використовують UV2.

Flags FLAG_UV1_USE_WORLD_TRIPLANAR = 8

Використовуйте триплощинний пошук текстури для всіх пошуків текстури, які зазвичай використовують UV.

Flags FLAG_UV2_USE_WORLD_TRIPLANAR = 9

Використовуйте триплановий пошук текстури для всіх пошуків текстури, які зазвичай використовують UV2.

Flags FLAG_AO_ON_UV2 = 10

Використовуйте координати UV2, щоб шукати вгору від ao_texture.

Flags FLAG_EMISSION_ON_UV2 = 11

Використовуйте координати UV2, щоб шукати вгору від emission_texture.

Flags FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 12

Примушує шейдер конвертувати альбедо з нелінійного кодування sRGB у лінійне кодування. Див. також albedo_texture_force_srgb.

Flags FLAG_DONT_RECEIVE_SHADOWS = 13

Вимикає отримання тіней від інших об'єктів.

Flags FLAG_DISABLE_AMBIENT_LIGHT = 14

Вимикає отримання навколишнього світла.

Flags FLAG_USE_SHADOW_TO_OPACITY = 15

Вмикає функцію тіні до непрозорості.

Flags FLAG_USE_TEXTURE_REPEAT = 16

Дозволяє повторювати текстуру, коли UV-координати виходять за межі діапазону 0-1. Якщо використовується один із лінійних режимів фільтрації, це може призвести до артефактів на краях текстури, коли семплер фільтрує по краях текстури.

Flags FLAG_INVERT_HEIGHTMAP = 17

Інвертуйте значення, зчитані з текстури глибини, щоб перетворити їх на значення висоти (карта висот).

Flags FLAG_SUBSURFACE_MODE_SKIN = 18

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

Flags FLAG_PARTICLE_TRAILS_MODE = 19

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

Flags FLAG_ALBEDO_TEXTURE_MSDF = 20

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

Flags FLAG_DISABLE_FOG = 21

Вимикає отримання глибинного або об’ємного туману.

Flags FLAG_DISABLE_SPECULAR_OCCLUSION = 22

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

Flags FLAG_USE_Z_CLIP_SCALE = 23

Дозволяє використовувати z_clip_scale.

Flags FLAG_USE_FOV_OVERRIDE = 24

Дозволяє використовувати fov_override.

Flags FLAG_MAX = 25

Представляє розмір переліку Flags.


enum DiffuseMode: 🔗

DiffuseMode DIFFUSE_BURLEY = 0

Алгоритм дифузного розсіювання за замовчуванням.

DiffuseMode DIFFUSE_LAMBERT = 1

Дифузне розсіювання ігнорує шорсткість.

DiffuseMode DIFFUSE_LAMBERT_WRAP = 2

Розширює кут Ламберта на понад 90 градусів, коли шорсткість збільшується.

DiffuseMode DIFFUSE_TOON = 3

Для освітлення використовується жорсткий зріз із згладжуванням, ураженим шорсткостями.


enum SpecularMode: 🔗

SpecularMode SPECULAR_SCHLICK_GGX = 0

Дзеркальна крапля за замовчуванням.

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

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

SpecularMode SPECULAR_TOON = 1

Мультяшна крапка, розмір якої змінюється залежно від шорсткості.

SpecularMode SPECULAR_DISABLED = 2

Без дзеркальної плями. Це трохи швидше для візуалізації, ніж інші дзеркальні режими.


enum BillboardMode: 🔗

BillboardMode BILLBOARD_DISABLED = 0

Режим білборда вимкнено.

BillboardMode BILLBOARD_ENABLED = 1

Вісь Z об’єкта завжди буде звернена до камери.

BillboardMode BILLBOARD_FIXED_Y = 2

Вісь X об’єкта завжди буде звернена до камери.

BillboardMode BILLBOARD_PARTICLES = 3

Використовується для систем частинок, коли призначається вузлам GPUParticles3D і CPUParticles3D (анімація фліпбука). Вмикає властивості particles_anim_*.

Для відтворення анімації для ParticleProcessMaterial.anim_speed_min або CPUParticles3D.anim_speed_min також має бути встановлено значення більше нуля.


enum TextureChannel: 🔗

TextureChannel TEXTURE_CHANNEL_RED = 0

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

TextureChannel TEXTURE_CHANNEL_GREEN = 1

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

TextureChannel TEXTURE_CHANNEL_BLUE = 2

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

TextureChannel TEXTURE_CHANNEL_ALPHA = 3

Використовується для читання з альфа-каналу текстури.

TextureChannel TEXTURE_CHANNEL_GRAYSCALE = 4

Використовується для читання лінійного (неперцепційного) середнього червоного, зеленого та синього каналів текстури.


enum EmissionOperator: 🔗

EmissionOperator EMISSION_OP_ADD = 0

Додає колір випромінювання до кольору з текстури випромінювання.

EmissionOperator EMISSION_OP_MULTIPLY = 1

Помножує колір випромінювання на колір текстури випромінювання.


enum DistanceFadeMode: 🔗

DistanceFadeMode DISTANCE_FADE_DISABLED = 0

Не використовуйте згасання на відстані.

DistanceFadeMode DISTANCE_FADE_PIXEL_ALPHA = 1

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

DistanceFadeMode DISTANCE_FADE_PIXEL_DITHER = 2

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

DistanceFadeMode DISTANCE_FADE_OBJECT_DITHER = 3

Плавно зникає об’єкт залежно від відстані до об’єкта від камери за допомогою підходу згладжування. Розтушовування скидає пікселі на основі встановленого шаблону, щоб плавно зникати без увімкнення прозорості. На певному обладнанні це може бути швидше, ніж DISTANCE_FADE_PIXEL_ALPHA і DISTANCE_FADE_PIXEL_DITHER.


enum StencilMode: 🔗

StencilMode STENCIL_MODE_DISABLED = 0

Вимикає операції з трафаретом.

StencilMode STENCIL_MODE_OUTLINE = 1

Пресет трафарету, який застосовує контур до об'єкта.

Примітка: Потрібен матеріал Material.next_pass, який буде застосовано автоматично. Будь-які зміни, внесені вручну до Material.next_pass, будуть втрачені під час зміни властивостей трафарету або перезавантаження сцени. Щоб безпечно застосувати матеріал Material.next_pass до матеріалу, який використовує пресет трафарету, використовуйте замість нього GeometryInstance3D.material_overlay.

StencilMode STENCIL_MODE_XRAY = 2

Пресет трафарету, який показує силует об'єкта за стінами.

Примітка: Потрібен матеріал Material.next_pass, який буде застосовано автоматично. Будь-які зміни, внесені вручну до Material.next_pass, будуть втрачені під час зміни властивостей трафарету або перезавантаження сцени. Щоб безпечно застосувати матеріал Material.next_pass до матеріалу, який використовує пресети трафаретів, використовуйте замість нього GeometryInstance3D.material_overlay.

StencilMode STENCIL_MODE_CUSTOM = 3

Дозволяє виконувати операції з трафаретом без попереднього налаштування.


enum StencilFlags: 🔗

StencilFlags STENCIL_FLAG_READ = 1

Матеріал буде відрендерено лише там, де він пройде порівняння трафарету з існуючими значеннями буфера трафарету.

StencilFlags STENCIL_FLAG_WRITE = 2

Матеріал запише опорне значення в буфер трафарету, де він пройде тест глибини.

StencilFlags STENCIL_FLAG_WRITE_DEPTH_FAIL = 4

Матеріал запише опорне значення в буфер трафарету, якщо він не пройде тест на глибину.


enum StencilCompare: 🔗

StencilCompare STENCIL_COMPARE_ALWAYS = 0

Завжди проходить випробування трафаретом.

StencilCompare STENCIL_COMPARE_LESS = 1

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

StencilCompare STENCIL_COMPARE_EQUAL = 2

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

StencilCompare STENCIL_COMPARE_LESS_OR_EQUAL = 3

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

StencilCompare STENCIL_COMPARE_GREATER = 4

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

StencilCompare STENCIL_COMPARE_NOT_EQUAL = 5

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

StencilCompare STENCIL_COMPARE_GREATER_OR_EQUAL = 6

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


Описи властивостей

Color albedo_color = Color(1, 1, 1, 1) 🔗

  • void set_albedo(value: Color)

  • Color get_albedo()

Основний колір матеріалу.

Примітка: Якщо detail_enabled має значення true і вказано текстуру detail_albedo, albedo_color не модулюватиме текстуру деталей. Це можна використовувати для забарвлення часткових областей матеріалу, не вказуючи текстуру альбедо та використовуючи замість неї прозору текстуру detail_albedo.


Texture2D albedo_texture 🔗

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

Якщо текстура неочікувано виглядає занадто темною або занадто яскравою, перевірте albedo_texture_force_srgb.


bool albedo_texture_force_srgb = false 🔗

Якщо true, примусово перетворюється albedo_texture з нелінійного кодування sRGB на лінійне кодування. Див. також vertex_color_is_srgb.

Це слід вмикати лише за потреби (зазвичай, під час використання ViewportTexture як albedo_texture). Якщо albedo_texture_force_srgb має значення true, коли не повинно бути, текстура виглядатиме занадто темною. Якщо albedo_texture_force_srgb має значення false, коли не повинно бути, текстура виглядатиме занадто яскравою.


bool albedo_texture_msdf = false 🔗

Вмикає шейдер відтворення багатоканального поля відстані зі знаком. Використовуйте msdf_pixel_range і msdf_outline_size, щоб налаштувати параметри MSDF.


float alpha_antialiasing_edge 🔗

  • void set_alpha_antialiasing_edge(value: float)

  • float get_alpha_antialiasing_edge()

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


AlphaAntiAliasing alpha_antialiasing_mode 🔗

Тип альфа-згладжування, який слід застосувати.


float alpha_hash_scale 🔗

  • void set_alpha_hash_scale(value: float)

  • float get_alpha_hash_scale()

Шкала хешування для Alpha Hash. Рекомендовані значення від 0 до 2.


float alpha_scissor_threshold 🔗

  • void set_alpha_scissor_threshold(value: float)

  • float get_alpha_scissor_threshold()

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


float anisotropy = 0.0 🔗

  • void set_anisotropy(value: float)

  • float get_anisotropy()

Сила ефекту анізотропії. Це множиться на альфа-канал anisotropy_flowmap, якщо там визначено текстуру, і текстура містить альфа-канал.


bool anisotropy_enabled = false 🔗

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

Примітка: Дотичні до сітки потрібні для роботи анізотропії. Якщо сітка не містить дотичних, ефект анізотропії буде виглядати порушеним.

Примітка: Анізотропію матеріалу не слід плутати з фільтрацією анізотропної текстури, яку можна ввімкнути, установивши для texture_filter значення TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC.


Texture2D anisotropy_flowmap 🔗

Текстура, яка зміщує дотичну карту для обчислень анізотропії та додатково контролює ефект анізотропії (якщо присутній альфа-канал). Очікується, що текстура карти потоку буде похідною картою, де червоний канал представлятиме спотворення на осі X, а зелений канал — спотворення на осі Y. Значення нижче 0,5 призведуть до негативних спотворень, тоді як значення вище 0,5 призведуть до позитивних спотворень.

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


bool ao_enabled = false 🔗

Якщо true, навколишнє перекриття ввімкнено. Навколишня оклюзія затемнює області на основі ao_texture.


float ao_light_affect = 0.0 🔗

  • void set_ao_light_affect(value: float)

  • float get_ao_light_affect()

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


bool ao_on_uv2 = false 🔗

Якщо true, використовуйте координати UV2 для пошуку вгору від ao_texture.


Texture2D ao_texture 🔗

Текстура, яка визначає ступінь навколишнього затемнення для даної точки на об’єкті.


TextureChannel ao_texture_channel = 0 🔗

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


Color backlight = Color(0, 0, 0, 1) 🔗

  • void set_backlight(value: Color)

  • Color get_backlight()

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


bool backlight_enabled = false 🔗

Якщо true, ефект підсвічування ввімкнено. Дивіться також subsurf_scatter_transmittance_enabled.


Texture2D backlight_texture 🔗

Текстура, яка використовується для керування ефектом підсвічування на піксель. Додано до backlight.


bool bent_normal_enabled = false 🔗

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


Texture2D bent_normal_texture 🔗

Текстура, що визначає середній напрямок вхідного навколишнього світла на заданий піксель. bent_normal_texture використовує лише червоний та зелений канали; синій та альфа-канали ігноруються. Нормаль, що зчитується з bent_normal_texture, орієнтована навколо нормалі поверхні, що надається Mesh.

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

Примітка: У даних вершин сітки повинні бути визначені як нормалі, так і дотичні. В іншому випадку затінення, створене картою зігнутих нормалей, виглядатиме неправильно. Якщо ви створюєте геометрію за допомогою SurfaceTool, ви можете використовувати SurfaceTool.generate_normals() та SurfaceTool.generate_tangents() для автоматичної генерації нормалей та дотичних відповідно.

Примітка: Годо очікує, що карта зігнутих норм використовуватиме координати X+, Y+ та Z+. Див. ця сторінка для порівняння координат нормальної карти, що очікуються популярними пошуковими системами.


bool billboard_keep_scale = false 🔗

Якщо true, шейдер збереже встановлений масштаб для сітки. Інакше втрачається масштаб при білборді. Застосовується, лише коли billboard_mode не BILLBOARD_DISABLED.


BillboardMode billboard_mode = 0 🔗

Керує тим, як об'єкт спрямований до камери.

Примітка: Режим рекламного щита не підходить для VR, оскільки вектор камери ліворуч-праворуч не горизонтальний, коли екран прикріплений до голови, а не до столу. Див. GitHub питання №41567 для отримання детальної інформації.


BlendMode blend_mode = 0 🔗

Режим змішування матеріалу.

Примітка: Значення, відмінні від Mix, примусово поміщають об'єкт у прозорий конвеєр.


float clearcoat = 1.0 🔗

  • void set_clearcoat(value: float)

  • float get_clearcoat()

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


bool clearcoat_enabled = false 🔗

Якщо true, рендеринг прозорого покриття ввімкнено. Додає вторинний прозорий прохід до розрахунку освітлення, що призводить до додавання дзеркальної плями. Завдяки цьому матеріали виглядають так, ніби на них є прозорий шар, який може бути або глянцевим, або шорстким.

Примітка: Відтворення прозорого покриття невидиме, якщо shading_mode матеріалу встановлено на SHADING_MODE_UNSHADED.


float clearcoat_roughness = 0.5 🔗

  • void set_clearcoat_roughness(value: float)

  • float get_clearcoat_roughness()

Встановлює шорсткість проходу прозорого лаку. Більше значення призводить до більш грубого прозорого покриття, а нижче значення призводить до більш гладкого прозорого покриття.


Texture2D clearcoat_texture 🔗

Текстура, яка визначає силу ефекту прозорого лаку та глянець прозорого лаку. Міцність вказується в червоному каналі, тоді як блиск вказується в зеленому каналі.


CullMode cull_mode = 0 🔗

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


DepthDrawMode depth_draw_mode = 0 🔗

Визначає, коли відбувається рендеринг глибини. Див. також transparency.


DepthTest depth_test = 0 🔗

Експериментальний: May be affected by future rendering pipeline changes.

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

Примітка: Зміна depth_test на значення, відмінне від стандартного, має видимий ефект лише тоді, коли використовується на прозорому матеріалі або матеріалі, для якого depth_draw_mode встановлено значення DEPTH_DRAW_DISABLED.


Texture2D detail_albedo 🔗

Текстура, яка визначає колір накладання деталей. Альфа-канал detail_albedo використовується як маска, навіть якщо матеріал непрозорий. Щоб використовувати спеціальну текстуру як маску, див. detail_mask.

Примітка: detail_albedo не модулюється albedo_color.


BlendMode detail_blend_mode = 0 🔗

Визначає, як detail_albedo має поєднуватися з поточним ALBEDO.


bool detail_enabled = false 🔗

Якщо true, вмикає накладання деталей. Деталі — це друга текстура, яка змішується на поверхні об’єкта на основі альфа-каналу detail_mask і detail_albedo. Це можна використовувати для додавання варіацій об’єктам або для змішування двох різних текстур альбедо/звичайних.


Texture2D detail_mask 🔗

Текстура використовується для визначення того, як детальні текстури змішуються з базовими текстурами. detail_mask можна використовувати разом із альфа-каналом detail_albedo (якщо є).


Texture2D detail_normal 🔗

Текстура, яка визначає піксельну нормаль накладання деталей. Текстура detail_normal використовує лише червоний і зелений канали; синій і альфа-канали ігноруються. Нормальне зчитування з detail_normal орієнтується навколо нормалі поверхні, наданої Mesh.

Примітка: Godot очікує, що карта нормалей використовуватиме координати X+, Y+ та Z+. Перегляньте цю сторінку, щоб порівняти нормальні координати карти, очікувані популярними механізмами.


DetailUV detail_uv_layer = 0 🔗

Визначає, чи використовувати UV чи UV2 для шару деталей.


DiffuseMode diffuse_mode = 0 🔗

Алгоритм, що використовується для дифузного розсіювання світла.


bool disable_ambient_light = false 🔗

Якщо true, об’єкт не отримує навколишнього світла.


bool disable_fog = false 🔗

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


bool disable_receive_shadows = false 🔗

Якщо true, об’єкт не отримує тіні, яка інакше була б на нього відкинута.


bool disable_specular_occlusion = false 🔗

Якщо значення true, вимикає дзеркальну оклюзію, навіть якщо значення ProjectSettings.rendering/reflections/specular_occlusion/enabled має значення false.


float distance_fade_max_distance = 10.0 🔗

  • void set_distance_fade_max_distance(value: float)

  • float get_distance_fade_max_distance()

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

Примітка: якщо distance_fade_max_distance менше, ніж distance_fade_min_distance, поведінка буде протилежною. Об’єкт почне зникати на distance_fade_max_distance і повністю зникне, коли досягне distance_fade_min_distance.


float distance_fade_min_distance = 0.0 🔗

  • void set_distance_fade_min_distance(value: float)

  • float get_distance_fade_min_distance()

Відстань, на якій об’єкт стає видимим. Якщо об’єкт знаходиться на відстані менше цієї відстані, він буде невидимим.

Примітка: якщо distance_fade_min_distance більше, ніж distance_fade_max_distance, поведінка буде протилежною. Об’єкт почне зникати на distance_fade_max_distance і повністю зникне, коли досягне distance_fade_min_distance.


DistanceFadeMode distance_fade_mode = 0 🔗

Визначає, який тип затухання використовувати. Може бути будь-яким із DistanceFadeMode.


Color emission = Color(0, 0, 0, 1) 🔗

  • void set_emission(value: Color)

  • Color get_emission()

Колір випромінюваного світла. Див. emission_enabled.


bool emission_enabled = false 🔗

Якщо true, тіло випромінює світло. Випромінювання світла робить об’єкт яскравішим. Об’єкт також може проливати світло на інші об’єкти, якщо використовується VoxelGI, SDFGI або LightmapGI, і цей об’єкт використовується в запеченому освітленні.


float emission_energy_multiplier = 1.0 🔗

  • void set_emission_energy_multiplier(value: float)

  • float get_emission_energy_multiplier()

Множник випромінюваного світла. Див. emission_enabled.


float emission_intensity 🔗

  • void set_emission_intensity(value: float)

  • float get_emission_intensity()

Яскравість випромінюваного світла, виміряна в нітах (кандела на квадратний метр). Доступно, лише якщо ввімкнено ProjectSettings.rendering/lights_and_shadows/use_physical_light_units. За замовчуванням приблизно еквівалентно кімнатній лампочці.


bool emission_on_uv2 = false 🔗

Використовуйте UV2 для читання з emission_texture.


EmissionOperator emission_operator = 0 🔗

Встановлює, як emission взаємодіє з emission_texture. Можна як додавати, так і множити.


Texture2D emission_texture 🔗

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


bool fixed_size = false 🔗

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


float fov_override = 75.0 🔗

  • void set_fov_override(value: float)

  • float get_fov_override()

Змінює кут поля зору Camera3D (у градусах).

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


bool grow = false 🔗

  • void set_grow_enabled(value: bool)

  • bool is_grow_enabled()

Якщо true, вмикає параметр зростання вершини. Це можна використовувати для створення контурів на основі сітки за допомогою другого проходу матеріалу та його cull_mode, встановленого на CULL_FRONT. Дивіться також grow_amount.

**Примітка: ** Зростання вершин не може створювати нові вершини, а це означає, що в гострих кутах можуть виникнути видимі розриви. Це можна пом’якшити, спроектувавши сітку для використання згладжених нормалей виключно за допомогою зважених нормалей у програмному забезпеченні для створення 3D. У цьому випадку grow зможе об’єднати кожен контур разом, як і в оригінальній сітці.


float grow_amount = 0.0 🔗

Зростає вершини об’єктів у напрямку їх нормалей. Ефективно, лише якщо grow має значення true.


bool heightmap_deep_parallax = false 🔗

  • void set_heightmap_deep_parallax(value: bool)

  • bool is_heightmap_deep_parallax_enabled()

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


bool heightmap_enabled = false 🔗

Якщо true, відображення висоти ввімкнено (також називається «відображенням паралакса» або «відображенням глибини»). Дивіться також normal_enabled. Відображення висоти є вимогливою функцією графічного процесора, тому його слід використовувати лише для матеріалів, де це має значну візуальну різницю.

Примітка: Відображення висоти не підтримується, якщо триплощинне відображення використовується для того самого матеріалу. Значення heightmap_enabled ігноруватиметься, якщо uv1_triplanar увімкнено.


bool heightmap_flip_binormal = false 🔗

  • void set_heightmap_deep_parallax_flip_binormal(value: bool)

  • bool get_heightmap_deep_parallax_flip_binormal()

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


bool heightmap_flip_tangent = false 🔗

  • void set_heightmap_deep_parallax_flip_tangent(value: bool)

  • bool get_heightmap_deep_parallax_flip_tangent()

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


bool heightmap_flip_texture = false 🔗

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

Це можна ввімкнути для сумісності з деякими матеріалами, створеними для Godot 3.x. Це не обов’язково, якщо для інвертування карти глибини в Godot 3.x використовувався параметр «Інвертувати імпорт», у такому випадку heightmap_flip_texture має залишатися false.


int heightmap_max_layers 🔗

  • void set_heightmap_deep_parallax_max_layers(value: int)

  • int get_heightmap_deep_parallax_max_layers()

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

Примітка: Ефективно, лише якщо heightmap_deep_parallax має значення true.


int heightmap_min_layers 🔗

  • void set_heightmap_deep_parallax_min_layers(value: int)

  • int get_heightmap_deep_parallax_min_layers()

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

Примітка: Ефективно, лише якщо heightmap_deep_parallax має значення true.


float heightmap_scale = 5.0 🔗

  • void set_heightmap_scale(value: float)

  • float get_heightmap_scale()

Масштаб карти висот для ефекту паралакса (див. heightmap_enabled). Значення за замовчуванням настроюється так, що найвища точка (значення = 255) виглядає на 5 см вищою за найнижчу точку (значення = 0). Вищі значення сприяють глибшому вигляду, але можуть призвести до появи артефактів, коли дивитися на матеріал під похилими кутами, особливо коли камера рухається. Від’ємні значення можна використовувати для інвертування ефекту паралакса, але це відрізняється від інвертування текстури за допомогою heightmap_flip_texture, оскільки матеріал також здаватиметься «ближчим» до камери. У більшості випадків heightmap_scale має бути позитивним значенням.

Примітка: Якщо ефект карти висот виглядає дивно незалежно від цього значення, спробуйте налаштувати heightmap_flip_binormal і heightmap_flip_tangent. Дивіться також heightmap_texture, щоб отримати рекомендації щодо створення текстур карти висот, оскільки спосіб створення текстури карти висот впливає на поведінку heightmap_scale.


Texture2D heightmap_texture 🔗

Текстура для використання як карти висот. Дивіться також heightmap_enabled.

Для отримання найкращих результатів текстуру слід нормалізувати (для компенсації зменшити heightmap_scale). У GIMP це можна зробити за допомогою Кольори > Авто > Вирівняти. Якщо текстура використовує лише невелику частину свого доступного діапазону, ефект паралакса може виглядати дивно, особливо коли камера рухається.

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


float metallic = 0.0 🔗

  • void set_metallic(value: float)

  • float get_metallic()

Високе значення робить матеріал більш схожим на метал. Неметали використовують своє альбедо як розсіяний колір і додають розсіяне до дзеркального відбиття. Для неметалів відображення з’являється поверх кольору альбедо. Метали використовують своє альбедо як множник для дзеркального відбиття та встановлюють дифузний колір на чорний, що призводить до тонованого відбиття. Матеріали працюють краще, якщо вони повністю металеві або повністю неметалічні, значення від 0 до 1 слід використовувати лише для змішування металевих і неметалевих секцій. Щоб змінити рівень відображення, використовуйте roughness.


float metallic_specular = 0.5 🔗

  • void set_specular(value: float)

  • float get_specular()

Регулює силу дзеркального відбиття. Дзеркальні відображення складаються з відображень сцени та дзеркальної пелюстки, яка є яскравою плямою, що відбивається від джерел світла. Якщо встановлено значення 0.0, жодних дзеркальних відбитків не буде видно. Це відрізняється від SPECULAR_DISABLED SpecularMode, оскільки SPECULAR_DISABLED застосовується лише до дзеркала від джерела світла.

Примітка: На відміну від metallic, це не є енергозберігаючим, тому в більшості випадків його слід залишити на 0,5. Дивіться також roughness.


Texture2D metallic_texture 🔗

Текстура, яка використовується для визначення металевого об’єкта. Це множиться на metallic.


TextureChannel metallic_texture_channel = 0 🔗

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


float msdf_outline_size = 0.0 🔗

  • void set_msdf_outline_size(value: float)

  • float get_msdf_outline_size()

Ширина контуру фігури.


float msdf_pixel_range = 4.0 🔗

  • void set_msdf_pixel_range(value: float)

  • float get_msdf_pixel_range()

Ширина діапазону навколо фігури між мінімальною та максимальною відстанню зі знаком, яку можна представити.


bool no_depth_test = false 🔗

Якщо true, тестування глибини вимкнено, а об’єкт буде намальовано в порядку візуалізації.


bool normal_enabled = false 🔗

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


float normal_scale = 1.0 🔗

  • void set_normal_scale(value: float)

  • float get_normal_scale()

Сила ефекту карти нормалей.


Texture2D normal_texture 🔗

Текстура, яка використовується для визначення нормалі в певному пікселі. normal_texture використовує лише червоний і зелений канали; синій і альфа-канали ігноруються. Нормальне зчитування з normal_texture орієнтоване навколо нормалі поверхні, наданої Mesh.

Примітка: сітка повинна мати як нормалі, так і дотичні, визначені в даних вершин. Інакше карта нормалей відтворюватиметься неправильно, а вся поверхня лише затемнюватиметься. Якщо ви створюєте геометрію за допомогою SurfaceTool, ви можете використовувати SurfaceTool.generate_normals() і SurfaceTool.generate_tangents() для автоматичного генерування нормалей і дотичних відповідно.

Примітка: Godot очікує, що карта нормалей використовуватиме координати X+, Y+ та Z+. Перегляньте цю сторінку, щоб порівняти нормальні координати карти, очікувані популярними механізмами.

Примітка: Якщо detail_enabled має значення true, текстура detail_albedo малюється нижче normal_texture. Щоб відобразити карту нормалей над текстурою detail_albedo, замість цього використовуйте detail_normal.


Texture2D orm_texture 🔗

Оклюзія/Шорсткість/Металева текстура для використання. Це більш ефективна заміна ao_texture, roughness_texture і metallic_texture в ORMMaterial3D. Оклюзія навколишнього середовища зберігається в червоному каналі. Карта шорсткості зберігається в зеленому каналі. Металева карта зберігається в синьому каналі. Альфа-канал ігнорується.


int particles_anim_h_frames 🔗

  • void set_particles_anim_h_frames(value: int)

  • int get_particles_anim_h_frames()

Кількість горизонтальних кадрів на аркуші спрайту частинок. Увімкнено лише при використанні BILLBOARD_PARTICLES. Перегляньте billboard_mode.


bool particles_anim_loop 🔗

  • void set_particles_anim_loop(value: bool)

  • bool get_particles_anim_loop()

Якщо true, анімація частинок повторюється. Увімкнено лише при використанні BILLBOARD_PARTICLES. Перегляньте billboard_mode.


int particles_anim_v_frames 🔗

  • void set_particles_anim_v_frames(value: int)

  • int get_particles_anim_v_frames()

Кількість вертикальних кадрів на аркуші спрайтів частинок. Увімкнено лише при використанні BILLBOARD_PARTICLES. Перегляньте billboard_mode.


float point_size = 1.0 🔗

  • void set_point_size(value: float)

  • float get_point_size()

Розмір точки в пікселях. Перегляньте use_point_size.


float proximity_fade_distance = 1.0 🔗

  • void set_proximity_fade_distance(value: float)

  • float get_proximity_fade_distance()

Відстань, на якій відбувається ефект згасання. Чим більша відстань, тим більше часу потрібно, щоб об’єкт зник.


bool proximity_fade_enabled = false 🔗

  • void set_proximity_fade_enabled(value: bool)

  • bool is_proximity_fade_enabled()

Якщо true, ефект згасання близькості ввімкнено. Ефект зникання наближення зменшує кожен піксель залежно від його відстані до іншого об’єкта.


bool refraction_enabled = false 🔗

Якщо true, ефект заломлення ввімкнено. Спотворює прозорість на основі світла позаду об’єкта.

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


float refraction_scale = 0.05 🔗

  • void set_refraction(value: float)

  • float get_refraction()

Сила ефекту заломлення.


Texture2D refraction_texture 🔗

Текстура, яка контролює силу заломлення на піксель. Помножено на refraction_scale.


TextureChannel refraction_texture_channel = 0 🔗

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


float rim = 1.0 🔗

Встановлює силу ефекту освітлення обода.


bool rim_enabled = false 🔗

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

Примітка: Освітлення обода невидиме, якщо shading_mode матеріалу встановлено на SHADING_MODE_UNSHADED.


Texture2D rim_texture 🔗

Текстура, яка використовується для встановлення потужності ефекту освітлення обода на піксель. Помножено на rim.


float rim_tint = 0.5 🔗

  • void set_rim_tint(value: float)

  • float get_rim_tint()

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


float roughness = 1.0 🔗

  • void set_roughness(value: float)

  • float get_roughness()

Відображення поверхні. Значення 0 представляє ідеальне дзеркало, а значення 1 повністю розмиває відображення. Дивіться також metallic.


Texture2D roughness_texture 🔗

Текстура використовується для контролю шорсткості на піксель. Помножено на roughness.


TextureChannel roughness_texture_channel = 0 🔗

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


ShadingMode shading_mode = 1 🔗

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


bool shadow_to_opacity = false 🔗

Якщо true, увімкнеться режим візуалізації «від тіні до непрозорості», де освітлення змінює альфа-версію, тому затінені області стають непрозорими, а незатінені — прозорими. Корисно для накладання тіней на канал камери в AR.


SpecularMode specular_mode = 0 🔗

Метод рендерингу дзеркальної плями.

Примітка: specular_mode застосовується лише до дзеркальної плями. Він не впливає на дзеркальні відбиття від неба, відбиття від екранного простору, VoxelGI, SDFGI або ReflectionProbe. Щоб вимкнути відбиття також від цих джерел, встановіть для metallic_specular значення 0.0.


Color stencil_color = Color(0, 0, 0, 1) 🔗

  • void set_stencil_effect_color(value: Color)

  • Color get_stencil_effect_color()

Експериментальний: May be affected by future rendering pipeline changes.

Основний колір трафаретного ефекту.


StencilCompare stencil_compare = 0 🔗

Експериментальний: May be affected by future rendering pipeline changes.

Оператор порівняння, який використовується для операцій маскування трафарету.


int stencil_flags = 0 🔗

  • void set_stencil_flags(value: int)

  • int get_stencil_flags()

Експериментальний: May be affected by future rendering pipeline changes.

Прапорці, що визначають поведінку операції з трафаретом.


StencilMode stencil_mode = 0 🔗

Експериментальний: May be affected by future rendering pipeline changes.

Режим ефекту трафарету.


float stencil_outline_thickness = 0.01 🔗

  • void set_stencil_effect_outline_thickness(value: float)

  • float get_stencil_effect_outline_thickness()

Експериментальний: May be affected by future rendering pipeline changes.

Товщина контуру для STENCIL_MODE_OUTLINE.


int stencil_reference = 1 🔗

  • void set_stencil_reference(value: int)

  • int get_stencil_reference()

Експериментальний: May be affected by future rendering pipeline changes.

Довідкове значення трафарету (0-255). Зазвичай це степінь числа 2.


bool subsurf_scatter_enabled = false 🔗

Якщо true, підповерхневе розсіювання ввімкнено. Емулює світло, яке проникає крізь поверхню об'єкта, розсіюється, а потім виходить. Якість підповерхневого розсіювання контролюється параметром ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality.

Примітка: Підповерхневе розсіювання не підтримується на екранах з прозорим фоном (де Viewport.transparent_bg має значення true).


bool subsurf_scatter_skin_mode = false 🔗

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


float subsurf_scatter_strength = 0.0 🔗

  • void set_subsurface_scattering_strength(value: float)

  • float get_subsurface_scattering_strength()

Сила ефекту підповерхневого розсіювання. Глибиною ефекту також керує ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale, який встановлюється глобально.


Texture2D subsurf_scatter_texture 🔗

Текстура, яка використовується для контролю сили розсіювання під поверхнею. Зберігається в каналі червоної текстури. Помножено на subsurf_scatter_strength.


float subsurf_scatter_transmittance_boost = 0.0 🔗

  • void set_transmittance_boost(value: float)

  • float get_transmittance_boost()

Інтенсивність ефекту пропускання підповерхневого розсіювання.


Color subsurf_scatter_transmittance_color = Color(1, 1, 1, 1) 🔗

  • void set_transmittance_color(value: Color)

  • Color get_transmittance_color()

Колір, за допомогою якого можна помножити ефект пропускання підповерхневого розсіювання. Ігнорується, якщо subsurf_scatter_skin_mode має значення true.


float subsurf_scatter_transmittance_depth = 0.1 🔗

  • void set_transmittance_depth(value: float)

  • float get_transmittance_depth()

Глибина ефекту пропускання підповерхневого розсіювання.


bool subsurf_scatter_transmittance_enabled = false 🔗

Якщо true, вмикається пропускна здатність підповерхневого розсіювання. Ефективно, лише якщо subsurf_scatter_enabled має значення true. Дивіться також backlight_enabled.


Texture2D subsurf_scatter_transmittance_texture 🔗

Текстура для використання для множення інтенсивності підповерхневого розсіювання інтенсивності пропускання. Дивіться також subsurf_scatter_texture. Ігнорується, якщо subsurf_scatter_skin_mode має значення true.


TextureFilter texture_filter = 3 🔗

Фільтруйте прапорці для текстури.

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


bool texture_repeat = true 🔗

Якщо true, текстура повторюється, коли перевищує розмір текстури. Див. FLAG_USE_TEXTURE_REPEAT.


Transparency transparency = 0 🔗

Режим прозорості матеріалу. Деякі режими прозорості вимикають відкидання тіні. Будь-який режим прозорості, окрім TRANSPARENCY_DISABLED, має більший вплив на продуктивність порівняно з непрозорим рендерингом. Дивіться також blend_mode.


bool use_fov_override = false 🔗

Якщо true, використовуйте fov_override для перевизначення кута поля зору Camera3D.


bool use_particle_trails = false 🔗

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


bool use_point_size = false 🔗

Якщо true, розмір точки візуалізації можна змінити.

Примітка: це діє лише для об’єктів, геометрія яких базується на точці, а не на трикутнику. Дивіться також point_size.


bool use_z_clip_scale = false 🔗

Якщо true, використовуйте z_clip_scale для масштабування об'єкта, що рендериться, у напрямку камери, щоб уникнути обрізання об такі речі, як стіни.


Vector3 uv1_offset = Vector3(0, 0, 0) 🔗

  • void set_uv1_offset(value: Vector3)

  • Vector3 get_uv1_offset()

Наскільки зсунути координати UV. Ця сума буде додана до UV у вершинній функції. Це можна використовувати для компенсації текстури. Компонент Z використовується, коли ввімкнено uv1_triplanar, але більше ніде він не використовується.


Vector3 uv1_scale = Vector3(1, 1, 1) 🔗

  • void set_uv1_scale(value: Vector3)

  • Vector3 get_uv1_scale()

Наскільки масштабувати координати UV. Це множиться на UV у вершинній функції. Компонент Z використовується, коли ввімкнено uv1_triplanar, але більше ніде він не використовується.


bool uv1_triplanar = false 🔗

Якщо true, замість використання текстур UV використовуватиметься триплановий пошук текстури, щоб визначити, як застосовувати текстури. Triplanar використовує орієнтацію поверхні об’єкта для змішування між координатами текстури. Він зчитує вихідну текстуру 3 рази, по одному разу для кожної осі, а потім змішує результати залежно від того, наскільки піксель вирівнюється з кожною віссю. Це часто використовується для природних особливостей, щоб отримати реалістичне поєднання матеріалів. Оскільки триплощинне текстурування вимагає набагато більше зчитувань текстури на піксель, воно набагато повільніше, ніж звичайне УФ-текстурування. Крім того, оскільки він змішує текстуру між трьома осями, він не підходить, коли ви намагаєтеся досягти чіткого текстурування.


float uv1_triplanar_sharpness = 1.0 🔗

  • void set_uv1_triplanar_blend_sharpness(value: float)

  • float get_uv1_triplanar_blend_sharpness()

Менше число змішує текстуру м’якше, тоді як більше число змішує текстуру чіткіше.

Примітка: uv1_triplanar_sharpness обмежується між 0.0 і 150.0 (включно), оскільки значення за межами цього діапазону можуть виглядати порушеними залежно від сітки.


bool uv1_world_triplanar = false 🔗

Якщо true, триплощинне відображення для UV обчислюється у світовому просторі, а не в локальному просторі об’єкта. Дивіться також uv1_triplanar.


Vector3 uv2_offset = Vector3(0, 0, 0) 🔗

  • void set_uv2_offset(value: Vector3)

  • Vector3 get_uv2_offset()

Наскільки зсунути координати UV2. Ця сума буде додана до UV2 у вершинній функції. Це можна використовувати для компенсації текстури. Компонент Z використовується, коли ввімкнено uv2_triplanar, але більше ніде він не використовується.


Vector3 uv2_scale = Vector3(1, 1, 1) 🔗

  • void set_uv2_scale(value: Vector3)

  • Vector3 get_uv2_scale()

Наскільки масштабувати координати UV2. Це множиться на UV2 у вершинній функції. Компонент Z використовується, коли ввімкнено uv2_triplanar, але більше ніде він не використовується.


bool uv2_triplanar = false 🔗

Якщо true, замість використання текстур UV2 використовуватиметься триплановий пошук текстури, щоб визначити, як застосовувати текстури. Triplanar використовує орієнтацію поверхні об’єкта для змішування між координатами текстури. Він зчитує вихідну текстуру 3 рази, по одному разу для кожної осі, а потім змішує результати залежно від того, наскільки піксель вирівнюється з кожною віссю. Це часто використовується для природних особливостей, щоб отримати реалістичне поєднання матеріалів. Оскільки триплощинне текстурування вимагає набагато більше зчитувань текстури на піксель, воно набагато повільніше, ніж звичайне УФ-текстурування. Крім того, оскільки він змішує текстуру між трьома осями, він не підходить, коли ви намагаєтеся досягти чіткого текстурування.


float uv2_triplanar_sharpness = 1.0 🔗

  • void set_uv2_triplanar_blend_sharpness(value: float)

  • float get_uv2_triplanar_blend_sharpness()

Менше число змішує текстуру м’якше, тоді як більше число змішує текстуру чіткіше.

Примітка: uv2_triplanar_sharpness обмежується між 0.0 і 150.0 (включно), оскільки значення за межами цього діапазону можуть виглядати порушеними залежно від сітки.


bool uv2_world_triplanar = false 🔗

Якщо true, триплощинне відображення для UV2 обчислюється у світовому просторі, а не в локальному просторі об’єкта. Дивіться також uv2_triplanar.


bool vertex_color_is_srgb = false 🔗

Якщо true, кольори вершин вважаються збереженими в нелінійному кодуванні sRGB і перетворюються на лінійне кодування під час рендерингу. Якщо false, кольори вершин вважаються збереженими в лінійному кодуванні і рендеряться як є. Див. також albedo_texture_force_srgb.

Примітка: Ефективно лише при використанні методів рендерингу Forward+ та Mobile, не Compatibility.


bool vertex_color_use_as_albedo = false 🔗

Якщо true, колір вершини використовується як колір альбедо.


float z_clip_scale = 1.0 🔗

  • void set_z_clip_scale(value: float)

  • float get_z_clip_scale()

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


Описи методів

bool get_feature(feature: Feature) const 🔗

Повертає true, якщо вказану функцію feature увімкнено.


bool get_flag(flag: Flags) const 🔗

Повертає true, якщо вказаний flag увімкнено.


Texture2D get_texture(param: TextureParam) const 🔗

Повертає Texture2D, пов'язаний із зазначеною текстурою param.


void set_feature(feature: Feature, enable: bool) 🔗

Якщо enable має значення true, вмикає вказану функцію feature. Багато функцій, доступних у BaseMaterial3D, потрібно ввімкнути перед використанням. Таким чином, вартість використання функції стягується лише тоді, коли вона вказана. Функції також можна ввімкнути, встановивши для їхньої відповідної властивості значення true.


void set_flag(flag: Flags, enable: bool) 🔗

Якщо enable має значення true, вмикається вказаний flag. Прапорці – це необов'язкова поведінка, яку можна вмикати та вимикати. За допомогою цієї функції можна вмикати лише один прапорець одночасно, перечислителі прапорців не можна маскувати бітами разом, щоб увімкнути або вимкнути кілька прапорців одночасно. Прапорці також можна ввімкнути, встановивши їх відповідну властивість на true.


void set_texture(param: TextureParam, texture: Texture2D) 🔗

Встановлює текстуру для слота, визначеного параметром param.