Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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 ( Transform3D to_cell_xform, AABB aabb, Vector3 octree_size, PackedByteArray octree_cells, PackedByteArray data_cells, PackedByteArray distance_field, PackedInt32Array level_counts )

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

  • void set_bias ( float value )

  • float get_bias ( )

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


float dynamic_range = 2.0

  • void set_dynamic_range ( float value )

  • float get_dynamic_range ( )

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


float energy = 1.0

  • void set_energy ( float value )

  • float get_energy ( )

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


bool interior = false

  • void set_interior ( bool value )

  • bool is_interior ( )

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


float normal_bias = 0.0

  • void set_normal_bias ( float value )

  • float get_normal_bias ( )

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


float propagation = 0.5

  • void set_propagation ( float value )

  • float get_propagation ( )

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


bool use_two_bounces = true

  • void set_use_two_bounces ( bool value )

  • bool is_using_two_bounces ( )

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


方法说明

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

目前没有这个方法的描述。请帮我们贡献一个


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

目前没有这个方法的描述。请帮我们贡献一个