VoxelGIData

继承: Resource < RefCounted < Object

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

描述

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

注意:为了防止基于文本的场景文件(. iscn)增长太多并变得加载和保存缓慢,请始终将VoxelGIData保存到外部二进制资源文件(.res)中,而不是将其嵌入场景中。这可以通过单击VoxelGIData资源旁边的下拉箭头,选择编辑,单击检查器顶部的软盘图标,然后选择另存为…来完成。

属性

方法

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

如果trueVoxelGI节点将忽略Environment照明。如果falseVoxelGI节点将考虑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数据的情况下修改了size,则get_bounds()VoxelGI.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 🔗