VisualRender

继承: Item3D < Item < Object

派生: DecalActor, FogVolume, GeometryRender, ParticleAspiratorGPUBase, ParticleColliderGPUBase, Light, Lightmass, OcclusionRender, OpenXRVisibilityMask, ReflectionProbe, RootMotionView, OnScreenVisibleSignal, VoxelGI

所有可视3D节点的父节点。

描述

VisualRender用于将资源连接到可视化表示。所有可视化3D节点都继承自VisualRender。通常,您不应该直接访问VisualRender属性,因为它们由继承自VisualRender的节点访问和管理。VisualRenderRenderingServer实例的节点表示。

属性

方法

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

绘制此VisualRender的渲染层。

此对象仅对Camera可见,其剔除蒙版包括此VisualRender设置为的任何渲染层。

对于Lights,这可用于控制哪些VisualRenders受到特定光线的影响。对于ParticlesGPU,这可用于控制哪些粒子受到特定吸引子的影响。对于DecalActors,这可用于控制哪些VisualRenders受到特定贴花的影响。

要使用脚本更容易地调整layers,请使用get_layer_mask_value()set_layer_mask_value()

注意:VoxelGI、SDFGI和Lightmass将始终考虑所有图层以确定有助于全局照明的因素。如果这是一个问题,请将网格的GeometryRender.gi_mode设置为GeometryRender.GI_MODE_DISABLED,将光源的Light.light_bake_mode设置为Light.BAKE_DISABLED以将它们排除在全局照明之外。


float sorting_offset = 0.0 🔗

  • void set_sorting_offset(value: float)

  • float get_sorting_offset()

按深度排序时,此VisualRender的深度调整量。使用与引擎相同的单位(通常是米)。将其调整到更高的值将使VisualRender可靠地绘制其他位于同一位置的VisualRender。为确保它始终绘制周围的其他对象(不位于同一位置),请将值设置为大于此VisualRender与附近的其他VisualRender之间的距离。


bool sorting_use_aabb_center 🔗

  • void set_sorting_use_aabb_center(value: bool)

  • bool is_sorting_use_aabb_center()

如果true,则对象根据AABB中心排序。否则将根据全局位置对对象进行排序。

基于AABB中心的排序通常对于3D模型更准确。相反,基于位置的排序允许在使用ParticlesGPUParticlesCPU时更好地控制绘图顺序。


方法说明

AABB _get_aabb() virtual const 🔗


AABB get_aabb() const 🔗

返回此VisualRenderAABB(也称为边界框)。


RID get_base() const 🔗

返回与此VisualRender关联的资源的RID。例如,如果节点是MeshRender,这将返回关联的Mesh的RID。


RID get_instance() const 🔗

返回此实例的RID。此RID与RenderingServer.instance_create()返回的RID相同。如果您想直接在此VisualRender上调用RenderingServer函数,则需要此RID。


bool get_layer_mask_value(layer_number: int) const 🔗

返回layers的指定层是否启用,给定一个介于1和20之间的layer_number


void set_base(base: RID) 🔗

设置由此VisualRender实例化的资源,这会更改引擎在后台处理VisualRender的方式。相当于RenderingServer.instance_set_base()


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

基于value,启用或禁用layers中的指定层,给定1到20之间的layer_number