VisualInstance3D

Наследует: Node3D < Node < Object

Наследуется от: Decal, FogVolume, GeometryInstance3D, GPUParticlesAttractor3D, GPUParticlesCollision3D, Light3D, LightmapGI, OccluderInstance3D, OpenXRVisibilityMask, ReflectionProbe, RootMotionView, VisibleOnScreenNotifier3D, VoxelGI

Родительский элемент всех визуальных 3D-узлов.

Описание

VisualInstance3D используется для подключения ресурса к визуальному представлению. Все визуальные 3D-узлы наследуются от VisualInstance3D. В общем случае не следует обращаться к свойствам VisualInstance3D напрямую, поскольку к ним обращаются и управляют узлы, наследующие от VisualInstance3D. VisualInstance3D — это представление узла экземпляра RenderingServer.

Свойства

int

layers

1

float

sorting_offset

0.0

bool

sorting_use_aabb_center

Методы

AABB

_get_aabb() virtual const

AABB

get_aabb() const

RID

get_base() const

RID

get_instance() const

bool

get_layer_mask_value(layer_number: int) const

void

set_base(base: RID)

void

set_layer_mask_value(layer_number: int, value: bool)


Описания свойств

int layers = 1 🔗

  • void set_layer_mask(value: int)

  • int get_layer_mask()

Слои рендеринга, на которых нарисован этот VisualInstance3D.

Этот объект будет виден только для Camera3D, чья маска отбраковки включает любой из слоев рендеринга, на который установлен этот VisualInstance3D.

Для Light3D это можно использовать для управления тем, на какие VisualInstance3D влияет определенный свет. Для GPUParticles3D это можно использовать для управления тем, на какие частицы влияет определенный аттрактор. Для Decal это можно использовать для управления тем, на какие VisualInstance3D влияет определенный декаль.

Чтобы упростить настройку layers с помощью скрипта, используйте get_layer_mask_value() и set_layer_mask_value().

Примечание: VoxelGI, SDFGI и LightmapGI всегда будут учитывать все слои, чтобы определить, что влияет на глобальное освещение. Если это проблема, установите GeometryInstance3D.gi_mode на GeometryInstance3D.GI_MODE_DISABLED для сеток и Light3D.light_bake_mode на Light3D.BAKE_DISABLED для источников света, чтобы исключить их из глобального освещения.


float sorting_offset = 0.0 🔗

  • void set_sorting_offset(value: float)

  • float get_sorting_offset()

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


bool sorting_use_aabb_center 🔗

  • void set_sorting_use_aabb_center(value: bool)

  • bool is_sorting_use_aabb_center()

Если true, объект сортируется на основе центра AABB. В противном случае объект будет сортироваться на основе глобальной позиции.

Сортировка на основе центра AABB обычно более точна для 3D-моделей. Сортировка на основе позиции вместо этого позволяет лучше контролировать порядок рисования при работе с GPUParticles3D и CPUParticles3D.


Описания метода

AABB _get_aabb() virtual const 🔗

There is currently no description for this method. Please help us by contributing one!


AABB get_aabb() const 🔗

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


RID get_base() const 🔗

Возвращает RID ресурса, связанного с этим VisualInstance3D. Например, если Node — это MeshInstance3D, это вернет RID связанного Mesh.


RID get_instance() const 🔗

Возвращает RID этого экземпляра. Этот RID совпадает с RID, возвращаемым RenderingServer.instance_create(). Этот RID необходим, если вы хотите вызывать функции RenderingServer непосредственно на этом VisualInstance3D.


bool get_layer_mask_value(layer_number: int) const 🔗

Возвращает, включен ли указанный слой из layers, учитывая layer_number от 1 до 20.


void set_base(base: RID) 🔗

Устанавливает ресурс, который инстанцируется этим VisualInstance3D, что изменяет то, как движок обрабатывает VisualInstance3D под капотом. Эквивалентно RenderingServer.instance_set_base().


void set_layer_mask_value(layer_number: int, value: bool) 🔗

На основе value включает или отключает указанный слой в layers при заданном layer_number от 1 до 20.