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

Фильтр текстуры считывает только ближайший пиксель. Это делает текстуру пикселизированной вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).

TextureFilter TEXTURE_FILTER_LINEAR = 1

Фильтр текстуры смешивает ближайшие 4 пикселя. Это делает текстуру гладкой вблизи и зернистой на расстоянии (из-за того, что mip-карты не сэмплируются).

TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 2

Фильтр текстуры считывает данные с ближайшего пикселя и смешивает их между двумя ближайшими mip-картами (или использует ближайшую mip-карту, если ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter имеет значение true). Это делает текстуру пикселизированной вблизи и гладкой на расстоянии.

TextureFilter TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 3

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

TextureFilter TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 4

Фильтр текстуры считывает данные с ближайшего пикселя и смешивает два mip-текстурных отображения (или использует ближайшее mip-текстурное отображение, если 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 mip-карты (или использует ближайшую mip-карту, если 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+ использует множественное рассеяние для более точных отражений, хотя влияние множественного рассеяния более заметно на грубых металлических поверхностях, чем на гладких, неметаллических поверхностях.

Примечание: Mobile и Compatibility не выполняют множественное рассеяние из соображений производительности. Вместо этого они выполняют однократное рассеяние, что означает, что грубые металлические поверхности могут выглядеть немного темнее, чем предполагалось.

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 🔗

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

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


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() для автоматической генерации нормалей и касательных соответственно.

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


bool billboard_keep_scale = false 🔗

Если true, шейдер сохранит масштаб, установленный для сетки. В противном случае масштаб теряется при билбординге. Применяется только когда billboard_mode не является BILLBOARD_DISABLED.


BillboardMode billboard_mode = 0 🔗

Управляет тем, как объект смотрит на камеру.

Примечание: Режим Billboard не подходит для VR, поскольку вектор камеры влево-вправо не горизонтален, когда экран прикреплен к голове, а не к столу. Подробности см. в GitHub issue #41567.


BlendMode blend_mode = 0 🔗

Режим смешивания материала.

Примечание: Значения, отличные от Mix, принудительно помещают объект в прозрачный трубопровод (pipeline).


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+. См. ` эту страницу <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ для сравнения координат карты нормалей, ожидаемых популярными движками.


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()

Яркость излучаемого света, измеряемая в нитах (nits) (кандела на квадратный метр). Доступно только при включенном 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-дизайна. В этом случае рост сможет объединить все контуры вместе, как в исходной сетке.


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). Это приводит к более убедительному эффекту глубины, но намного более затратно для графического процессора. Включайте это только для материалов, где это создает существенную визуальную разницу.


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. Это не обязательно, если опция импорта Invert использовалась для инвертирования карты глубины в 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, нормальное отображение включено. Это немного снижает производительность, особенно на мобильных GPU.


float normal_scale = 1.0 🔗

  • void set_normal_scale(value: float)

  • float get_normal_scale()

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


Texture2D normal_texture 🔗

Текстура используется для указания нормали в заданном пикселе. Member 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 🔗

Текстура Occlusion/Roughness/Metallic для использования. Это более эффективная замена ao_texture, roughness_texture и metallic_texture в ORMMaterial3D. Окружающая окклюзия хранится в красном канале. Карта шероховатости хранится в зеленом канале. Карта Metallic хранится в синем канале. Альфа-канал игнорируется.


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. Это также требует использования сетки с соответствующим скиннингом (skinning), например 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) 🔗

Насколько смещать координаты UV. Эта величина будет добавлена к UV в функции вершины. Это можно использовать для смещения текстуры. Компонент Z используется, когда включен uv1_triplanar, но больше нигде не используется.


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

Насколько масштабировать координаты UV. Это умножается на UV в функции вершины. Компонент Z используется, когда включен uv1_triplanar, но больше нигде не используется.


bool uv1_triplanar = false 🔗

Если true, вместо использования текстур UV будет использоваться поиск трипланарной текстуры для определения способа применения текстур. Трипланарность использует ориентацию поверхности объекта для смешивания между координатами текстуры. Он считывает исходную текстуру 3 раза, по одному разу для каждой оси, а затем смешивает результаты на основе того, насколько близко пиксель совпадает с каждой осью. Это часто используется для естественных особенностей, чтобы получить реалистичное смешивание материалов. Поскольку трипланарное текстурирование требует гораздо большего количества считываний текстуры на пиксель, оно намного медленнее обычного UV-текстурирования. Кроме того, поскольку оно смешивает текстуру между тремя осями, оно не подходит, когда вы пытаетесь добиться четкого текстурирования.


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, трипланарное (triplanar) отображение для UV вычисляется в мировом пространстве, а не в локальном пространстве объекта. См. также uv1_triplanar.


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

Насколько смещать координаты UV2. Эта величина будет добавлена к UV2 в функции вершины. Это можно использовать для смещения текстуры. Компонент Z используется, когда включен uv2_triplanar, но больше нигде не используется.


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

Насколько масштабировать координаты UV2. Это умножается на UV2 в функции вершины. Компонент Z используется, когда включен uv2_triplanar, но больше нигде не используется.


bool uv2_triplanar = false 🔗

Если true, вместо использования текстур UV2 будет использоваться поиск трипланарной текстуры для определения способа применения текстур. Трипланарность использует ориентацию поверхности объекта для смешивания между координатами текстуры. Он считывает исходную текстуру 3 раза, по одному разу для каждой оси, а затем смешивает результаты на основе того, насколько близко пиксель совпадает с каждой осью. Это часто используется для естественных особенностей, чтобы получить реалистичное смешивание материалов. Поскольку трипланарное текстурирование требует гораздо большего количества считываний текстуры на пиксель, оно намного медленнее обычного UV-текстурирования. Кроме того, поскольку оно смешивает текстуру между тремя осями, оно не подходит, когда вы пытаетесь добиться четкого текстурирования.


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.