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_*变量或任何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 🔗
void set_process_mode(value: ProcessMode)
ProcessMode get_process_mode()
设置从天空生成辐射贴图的方法。辐射贴图是一个立方体贴图,对应不同粗糙度级别的天空版本越来越模糊。辐射贴图的计算可能很昂贵。有关选项,请参阅ProcessMode。
RadianceSize radiance_size = 3 🔗
void set_radiance_size(value: RadianceSize)
RadianceSize get_radiance_size()
【天空】的光辉地图大小。光辉地图大小越高,【天空】的光照就越详细。
有关值,请参阅RadianceSize常量。
注意:一些硬件会有更高光辉尺寸的麻烦,尤其是RADIANCE_SIZE_512及以上。只有在高端硬件上使用如此高的值。
Material用于绘制背景。如果你想使用自己的自定义着色器,可以是PanoramaSkyMaterial、ProceduralSkyMaterial、PhysicalSkyMaterial,甚至是ShaderMaterial。