Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Sky¶
继承: Resource < RefCounted < Object
使用 Material 定义 3D 环境的背景。
描述¶
Sky 类使用 Material 来渲染 3D 环境的背景及其通过更新反射/辐射立方体贴图发出的光。
属性¶
|
||
|
||
枚举¶
enum RadianceSize:
RadianceSize RADIANCE_SIZE_32 = 0
辐照度纹理尺寸为 32×32 像素。
RadianceSize RADIANCE_SIZE_64 = 1
辐照度纹理尺寸为 64×64 像素。
RadianceSize RADIANCE_SIZE_128 = 2
辐照度纹理尺寸为128×128像素。
RadianceSize RADIANCE_SIZE_256 = 3
辐照度纹理尺寸为 256×256 像素。
RadianceSize RADIANCE_SIZE_512 = 4
辐照度纹理尺寸为 512×512 像素。
RadianceSize RADIANCE_SIZE_1024 = 5
辐照度纹理尺寸为 1024×1024 像素。
RadianceSize RADIANCE_SIZE_2048 = 6
辐照度纹理尺寸为 2048×2048 像素。
RadianceSize RADIANCE_SIZE_MAX = 7
代表 RadianceSize 枚举的大小。
enum ProcessMode:
ProcessMode PROCESS_MODE_AUTOMATIC = 0
根据天空着色器自动选择合适的处理模式。如果着色器使用 TIME
或 POSITION
,这将使用 PROCESS_MODE_REALTIME。如果着色器使用任何 LIGHT_*
变量或任何自定义 uniform,这将使用 PROCESS_MODE_INCREMENTAL。否则,这默认为 PROCESS_MODE_QUALITY。
ProcessMode PROCESS_MODE_QUALITY = 1
使用高质量重要性采样处理辐照度贴图。得到的结果通常比 PROCESS_MODE_REALTIME 的质量更高,但需要花费更多的时间来生成。如果你计划在运行时修改天空,则不应使用。如果你发现反射不够模糊,出现了火花或者萤火虫,请尝试增大 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples。
ProcessMode PROCESS_MODE_INCREMENTAL = 2
使用与 PROCESS_MODE_QUALITY 相同的高质量重要性采样来处理辐照度贴图,但更新会占用几帧。帧数由 ProjectSettings.rendering/reflections/sky_reflections/roughness_layers 决定。当需要最高质量的辐照度贴图,但天空更新缓慢时,请使用该选项。
ProcessMode PROCESS_MODE_REALTIME = 3
使用快速过滤算法处理辐射度贴图。一般来说,这会导致质量较低,但运行时间会大大加快。如果需要更好的质量,但仍需要每帧更新天空,请考虑开启 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality。
注意:快速过滤算法被限制为 256x256 立方体贴图,因此必须将 radiance_size 设置为 RADIANCE_SIZE_256。否则会输出警告并忽略覆盖的辐射度大小。
属性说明¶
ProcessMode process_mode = 0
void set_process_mode ( ProcessMode value )
ProcessMode get_process_mode ( )
设置从天空生成辐照度贴图的方法。辐照度贴图是一个立方体贴图,具有递增的模糊版本的天空,以对应于不同级别的粗糙度。辐照度贴图的计算成本很高。有关选项,请参阅 ProcessMode。
RadianceSize radiance_size = 3
void set_radiance_size ( RadianceSize value )
RadianceSize get_radiance_size ( )
该 Sky 的辐照度贴图大小。辐射度贴图尺寸越大,来自 Sky 的照明就越详细。
取值见 RadianceSize 常量。
注意:某些硬件在使用较高的辐照度大小,尤其是 RADIANCE_SIZE_512 及以上时,会遇到问题。请仅在高端硬件上使用如此高的值。
Material sky_material
用于绘制该背景的 Material。可以是 PanoramaSkyMaterial、ProceduralSkyMaterial、PhysicalSkyMaterial,如果你想使用自定义着色器也可以是 ShaderMaterial。