VoxelGIData

继承: Resource < RefCounted < Object

包含用于 VoxelGI 节点的烘焙体素全局光照数据。

描述

VoxelGIData 包含烘焙的体素全局照明,用于 VoxelGI 节点。VoxelGIData 还提供了若干用来调整全局照明最终外观的属性。这些属性可以在运行时调整,无须再次烘焙 VoxelGI 节点。

注意:为了防止基于文本的场景文件(.tscn)过度增长,导致加载和保存速度变慢,请始终将 VoxelGIData 保存为外部二进制资源文件(.res),不要将其嵌入到场景中。做法是点击 VoxelGIData 资源旁边的下拉箭头,选择编辑,点击检查器顶部的软盘图标,然后选择另存为…

教程

属性

float

bias

1.5

float

dynamic_range

2.0

float

energy

1.0

bool

interior

false

float

normal_bias

0.0

float

propagation

0.5

bool

use_two_bounces

true

方法

void

allocate(to_cell_xform: Transform3D, aabb: AABB, octree_size: Vector3, octree_cells: PackedByteArray, data_cells: PackedByteArray, distance_field: PackedByteArray, level_counts: PackedInt32Array)

AABB

get_bounds() const

PackedByteArray

get_data_cells() const

PackedInt32Array

get_level_counts() const

PackedByteArray

get_octree_cells() const

Vector3

get_octree_size() const

Transform3D

get_to_cell_xform() const


属性说明

float bias = 1.5 🔗

间接光照和反射所使用的法线偏移。较高的值可以减少非粗糙材质中可见的自反射,但会增加光线泄漏并让间接光照看上去更扁平。如果要优先隐藏自反射而不是追求光照质量,请将 bias 设为 0.0,并将 normal_bias 设为 1.02.0 之间的值。


float dynamic_range = 2.0 🔗

  • void set_dynamic_range(value: float)

  • float get_dynamic_range()

要使用的动态范围(1.0 代表低动态范围场景亮度)。较高的值可用于提供更明亮的间接光照,但会在较暗的区域产生更多可见的色带效果(包括间接光照和反射)。为了避免色带效果,建议将其设置得尽可能低,避免出现明显的亮度截断。


float energy = 1.0 🔗

  • void set_energy(value: float)

  • float get_energy()

VoxelGI 节点产生的间接照明和反射的能量。值越高,间接照明越亮。如果间接照明看起来过于平坦,请尝试减少 propagation,同时增加 energy。另请参阅影响间接照明有效亮度的 use_two_bounces


bool interior = false 🔗

  • void set_interior(value: bool)

  • bool is_interior()

如果为 true,则 VoxelGI 节点会忽略 Environment 光照。如果为 false,则 VoxelGI 节点会考虑 Environment 光照。Environment 光照会实时更新,这意味着无需再次烘焙 VoxelGI 节点即可对其进行更改。


float normal_bias = 0.0 🔗

  • void set_normal_bias(value: float)

  • float get_normal_bias()

用于间接照明和反射的法线偏置。较高的值能够减少在非粗糙材质中可见的自反射,但会导致更多可见的漏光问题,间接照明看起来也会更平坦。另见 bias。要优先隐藏自反射,而不是提高照明质量,请将 bias 设置为 0.0,并将 normal_bias 设置为介于 1.02.0 之间的值。


float propagation = 0.5 🔗

  • void set_propagation(value: float)

  • float get_propagation()

当光线从表面反弹时使用的乘数。较高的值会导致更亮的间接照明。如果间接照明看起来过于平坦,请尝试减少 propagation 同时增加 energy。另请参阅影响间接照明的有效亮度的 use_two_bounces


bool use_two_bounces = true 🔗

  • void set_use_two_bounces(value: bool)

  • bool is_using_two_bounces()

如果为 true,则执行两次间接照明反弹而不是一次。这使得以一个较低的性能成本,使间接照明看起来更自然、更明亮。第二次反弹在反射中也是可见的。如果启用 use_two_bounces 后场景显得太亮,请调整 propagationenergy


方法说明

void allocate(to_cell_xform: Transform3D, aabb: AABB, octree_size: Vector3, octree_cells: PackedByteArray, data_cells: PackedByteArray, distance_field: PackedByteArray, level_counts: PackedInt32Array) 🔗

该方法目前没有描述,请帮我们贡献一个吧!


AABB get_bounds() const 🔗

返回一个 AABB,表示已烘焙体素数据的边界,烘焙后应该与 VoxelGI.size 相匹配(仅包含表示大小的 Vector3)。

注意:如果修改了大小但没有对 VoxelGI 数据进行烘焙,则 get_boundsVoxelGI.size 的值将不匹配。


PackedByteArray get_data_cells() const 🔗

该方法目前没有描述,请帮我们贡献一个吧!


PackedInt32Array get_level_counts() const 🔗

该方法目前没有描述,请帮我们贡献一个吧!


PackedByteArray get_octree_cells() const 🔗

该方法目前没有描述,请帮我们贡献一个吧!


Vector3 get_octree_size() const 🔗

该方法目前没有描述,请帮我们贡献一个吧!


Transform3D get_to_cell_xform() const 🔗

该方法目前没有描述,请帮我们贡献一个吧!