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

根据您的天空着色器自动选择适当的进程模式。如果您的着色器使用TIMEPOSITION,这将使用PROCESS_MODE_REALTIME。如果您的着色器使用任何LIGHT_*变量或任何custom 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

注意:快速过滤算法限于256×256立方体贴图,因此radiance_size必须设置为RADIANCE_SIZE_256,否则将打印警告并忽略被覆盖的辐射度大小。


属性说明

ProcessMode process_mode = 0 🔗

设置从天空生成辐射贴图的方法。辐射贴图是一个立方体贴图,对应不同粗糙度级别的天空版本越来越模糊。辐射贴图的计算可能很昂贵。有关选项,请参阅ProcessMode


RadianceSize radiance_size = 3 🔗

【天空】的光辉地图大小。光辉地图大小越高,【天空】的光照就越详细。

有关值,请参阅RadianceSize常量。

注意:一些硬件会有更高光辉尺寸的麻烦,尤其是RADIANCE_SIZE_512及以上。只有在高端硬件上使用如此高的值。


Material sky_material 🔗

Material用于绘制背景。如果你想使用自己的自定义着色器,可以是PanoramaSkyMaterialProceduralSkyMaterialPhysicalSkyMaterial,甚至是ShaderMaterial