Environment
继承: Resource < RefCounted < Object
定义渲染选项的资源,用于环境节点(例如 WorldEnvironment)。
描述
定义环境操作(例如背景 Sky 或 Color、环境光、雾、景深等)的资源,用于环境节点(例如 WorldEnvironment)。这些参数会对场景的最终渲染造成影响。操作的顺序为:
景深模糊
辉光
色调映射(自动曝光)
调整
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
get_glow_level(idx: int) const | |
void | set_glow_level(idx: int, intensity: float) |
枚举
enum BGMode: 🔗
BGMode BG_CLEAR_COLOR = 0
使用 ProjectSettings.rendering/environment/defaults/default_clear_color 中定义的清除颜色来清除背景。
BGMode BG_COLOR = 1
使用自定义的清除颜色来清除背景。
BGMode BG_SKY = 2
在背景中显示用户自定义的天空。
BGMode BG_CANVAS = 3
在背景中显示 CanvasLayer。
BGMode BG_KEEP = 4
在屏幕上保留在背景中绘制的每个像素。这是最快的背景模式,但它只能安全地用在完全室内的场景(没有可见的天空或天空反射)。如果在背景可见的场景中启用,则移动相机时,将看到“鬼影踪迹”伪影。
BGMode BG_CAMERA_FEED = 5
在背景中显示相机源。
BGMode BG_MAX = 6
代表 BGMode 枚举的大小。
enum AmbientSource: 🔗
AmbientSource AMBIENT_SOURCE_BG = 0
从指定为背景的任何来源收集环境光。
AmbientSource AMBIENT_SOURCE_DISABLED = 1
禁用环境光。这比 AMBIENT_SOURCE_SKY 提供了轻微的性能提升。
AmbientSource AMBIENT_SOURCE_COLOR = 2
为环境光指定特定的 Color。与 AMBIENT_SOURCE_SKY 相比,这提供了轻微的性能提升。
AmbientSource AMBIENT_SOURCE_SKY = 3
无论背景如何,都从 Sky 收集环境光。
enum ReflectionSource: 🔗
ReflectionSource REFLECTION_SOURCE_BG = 0
使用背景进行反射。
ReflectionSource REFLECTION_SOURCE_DISABLED = 1
禁用反射。与其他选项相比,这提供了轻微的性能提升。
ReflectionSource REFLECTION_SOURCE_SKY = 2
无论背景如何,都使用 Sky 进行反射。
enum ToneMapper: 🔗
ToneMapper TONE_MAPPER_LINEAR = 0
线性色调映射运算子。读取线性数据并将其原样传递。较亮的光照会导致过曝、输出的颜色中会有可见的截断。
ToneMapper TONE_MAPPER_REINHARDT = 1
Reinhardt 色调映射运算子。对渲染后的像素颜色进行调整,使用的是这个公式:color = color / (1 + color)
。可以避免对高光的截断,但最终的图像可能看上去有些寡淡。
ToneMapper TONE_MAPPER_FILMIC = 2
电影级色调映射器运算子。可以避免对高光处的截断,最终图像通常比 TONE_MAPPER_REINHARDT 更鲜艳。
ToneMapper TONE_MAPPER_ACES = 3
使用学院色彩编码系统(Academy Color Encoding System)色调映射器。ACES 比其他选项消耗略高,但对于较亮光照的处理更真实,越亮饱和度越低。ACES 的输出在对比度方面通常比 TONE_MAPPER_REINHARDT 和 TONE_MAPPER_FILMIC 更高。
注意:Godot 3.x 将该色调映射运算符称为“ACES Fitted”。
enum GlowBlendMode: 🔗
GlowBlendMode GLOW_BLEND_MODE_ADDITIVE = 0
添加辉光混合模式。主要用于粒子、辉光(泛光)、镜头眩光、亮源。
GlowBlendMode GLOW_BLEND_MODE_SCREEN = 1
滤色辉光混合模式。增加亮度,经常与泛光一起使用。
GlowBlendMode GLOW_BLEND_MODE_SOFTLIGHT = 2
柔光辉光混合模式。修改对比度,曝光阴影和高光(高质量泛光)。
GlowBlendMode GLOW_BLEND_MODE_REPLACE = 3
替换辉光混合模式。用辉光值替换所有像素的颜色。这可以通过调整辉光参数来模拟全屏模糊效果,使其与原始图像的亮度相匹配。
GlowBlendMode GLOW_BLEND_MODE_MIX = 4
将辉光与底层颜色混合,以避免在保持辉光效果的同时,尽可能多地增加亮度。
enum FogMode: 🔗
FogMode FOG_MODE_EXPONENTIAL = 0
使用主要由雾密度定义的基于物理的雾模型。
FogMode FOG_MODE_DEPTH = 1
使用由开始位置和结束位置以及自定义曲线定义的简单雾模型。虽然在物理上并不准确,但当你需要更多的艺术控制时,该模型可能会很有用。
enum SDFGIYScale: 🔗
SDFGIYScale SDFGI_Y_SCALE_50_PERCENT = 0
在 Y(垂直)轴上对 SDFGI 使用 50% 的缩放。SDFGI 单元格将比它们的宽度短两倍。这允许提供更多的 GI 细节,并减少薄地板和天花板的漏光。这通常是垂直度不高的场景的最佳选择。
SDFGIYScale SDFGI_Y_SCALE_75_PERCENT = 1
在 Y(垂直)轴上为 SDFGI 使用 75% 的缩放。这是 50% 和 100% SDFGI Y 缩放之间的平衡。
SDFGIYScale SDFGI_Y_SCALE_100_PERCENT = 2
在 Y(垂直)轴上为 SDFGI 使用 100% 的缩放。SDFGI 单元格将与宽度一样高。这通常是高度垂直场景的最佳选择。不利之处在于,薄地板和天花板可能会导致漏光更加明显。
属性说明
float adjustment_brightness = 1.0
🔗
渲染场景的全局亮度值。只有当 adjustment_enabled 为 true
时才有效。
Texture adjustment_color_correction 🔗
用于内置后处理颜色分级的 Texture2D 或 Texture3D 查找表(LUT)。可以将 GradientTexture1D 用于一维 LUT,或将 Texture3D 用于更复杂的 LUT。仅当 adjustment_enabled 为 true
时有效。
float adjustment_contrast = 1.0
🔗
渲染场景的全局对比度值(默认值为 1)。只有当 adjustment_enabled 为 true
时才有效。
bool adjustment_enabled = false
🔗
如果为 true
,则启用该资源提供的 adjustment_*
属性。如果为 false
,则对 adjustment_*
属性的修改将不会对渲染场景产生影响。
float adjustment_saturation = 1.0
🔗
渲染场景的全局色彩饱和度值(默认值为 1)。只有在 adjustment_enabled 为 true
时才有效。
Color ambient_light_color = Color(0, 0, 0, 1)
🔗
环境光的 Color。仅当 ambient_light_sky_contribution 低于 1.0
(不包括)时,才有效。
float ambient_light_energy = 1.0
🔗
环境光的能量。值越高,光线越强。仅当 ambient_light_sky_contribution 低于 1.0
(不包括)时,才有效。
float ambient_light_sky_contribution = 1.0
🔗
定义天空给场景带来的光照量。值为 0.0
表示天空的发光对场景照明没有影响,因此所有的环境照明都由环境光提供。相反,值为 1.0
表示所有影响场景的光线都由天空提供,因此环境光参数对场景没有影响。
注意:内部会将 ambient_light_sky_contribution 限制在 0.0
到 1.0
之间(闭区间)。
AmbientSource ambient_light_source = 0
🔗
void set_ambient_source(value: AmbientSource)
AmbientSource get_ambient_source()
环境光源,用于渲染材质和全局照明。
int background_camera_feed_id = 1
🔗
在背景中显示的相机源的 ID。
int background_canvas_max_layer = 0
🔗
要显示的最大图层 ID。只有在使用 BG_CANVAS 背景模式时有效。
Color background_color = Color(0, 0, 0, 1)
🔗
场景中清除区域显示的 Color。仅在使用 BG_COLOR 背景模式时有效。
float background_energy_multiplier = 1.0
🔗
背景能量的倍数。增加可以使背景更亮,减少可以使背景更暗。
float background_intensity = 30000.0
🔗
背景的亮度,单位是尼特(坎德拉/平方米)。仅当启用 ProjectSettings.rendering/lights_and_shadows/use_physical_light_units 时使用。默认值大致相当于正午时分的天空。
背景模式。可能的取值见 BGMode。
float fog_aerial_perspective = 0.0
🔗
如果设置大于 0.0
(不含),会在雾的颜色和背景 Sky 的颜色之间进行混合。设置大于 0.0
时有较小的性能代价。必须将 background_mode 设置为 BG_SKY。
对于模拟雾密度较低的大场景中的空气透视很有用。但对于高密度的雾来说不是很有用,因为天空会被照亮。设置为 1.0
时,雾的颜色完全来自 Sky。设置为 0.0
时,会禁用空气透视。
要使用的雾密度。根据所选的 fog_mode 模式,可以通过不同的方式进行演示:
指数雾模式:数值越高,雾就越浓。雾渲染就像现实生活中一样呈指数级增长。
深度雾模式:深度雾的最大强度,效果将出现在远处(相对于相机)。在 1.0
处,雾将完全遮盖场景,在 0.0
处,雾将不可见。
float fog_depth_begin = 10.0
🔗
雾距相机的深度起始距离。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。
雾深度的强度曲线。通过右键点击曲线,可以在检查器中使用许多预设。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。
雾距相机的深度结束的距离。如果该值被设置为 0
,它将等于当前相机的 Camera3D.far 值。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。
如果为 true
,则启用雾效果。
高度雾效果开始的高度。
float fog_height_density = 0.0
🔗
用于随着高度降低而增加雾的密度。要使雾随着高度增加而增加,请使用负值。
Color fog_light_color = Color(0.518, 0.553, 0.608, 1)
🔗
雾的颜色。
float fog_light_energy = 1.0
🔗
雾的亮度。值越高,雾越亮。
雾模式。可能的取值见 FogMode。
非体积雾影响天空时使用的系数。1.0
表示雾可以完全遮蔽天空。较低的值会减少雾对天空渲染的影响,0.0
完全不影响天空的渲染。
注意:如果 fog_aerial_perspective 为 1.0
,fog_sky_affect 不会有视觉效果。
如果设置为 0.0
以上,则根据视角以雾色渲染场景的定向光。这可以用来给人一种太阳正在“穿透”雾的印象。
GlowBlendMode glow_blend_mode = 2
🔗
void set_glow_blend_mode(value: GlowBlendMode)
GlowBlendMode get_glow_blend_mode()
辉光混合模式。
注意:glow_blend_mode 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
泛光的强度。如果设置为大于 0
的值,则将在比 glow_hdr_threshold 成员更暗的区域中显示辉光。
如果为 true
,则会启用辉光效果。这个效果模拟的是真实世界中眼睛/相机的行为,亮度很高的像素会溢出到周围的像素中。
注意:使用“移动”渲染方法时,辉光的外观会不一样,因为“移动”渲染方法中只能使用低动态范围。
注意:使用“兼容”渲染方法时,辉光的实现方式不同,部分属性不可用,会在检查器中隐藏:glow_levels/*
、glow_normalized、glow_strength、glow_blend_mode、glow_mix、glow_map、glow_map_strength。这种实现方式是针对在低端设备上运行而优化的,因此灵活性较差。
float glow_hdr_luminance_cap = 12.0
🔗
HDR 辉光的较高阈值。比这个阈值更亮的区域将被限制,以达到辉光效果的目的。
HDR 辉光的逸出缩放。
float glow_hdr_threshold = 1.0
🔗
HDR 辉光的下限阈值。当使用 Mobile 渲染方法时(仅支持较低的动态范围,最大为 2.0
),需要低于 1.0
才能看到辉光。在这种情况下取 0.9
可以达到不错的效果。在 2D 中使用辉光时也需要降低到 1.0
以下,因为 2D 渲染使用 SDR。
辉光效果的整体亮度倍数。使用 Mobile 渲染方法时(仅支持较低的动态范围,最大为 2.0
),应将其增加到 1.5
进行补偿。
第一级辉光的强度。这是最“局部”的级别(最不模糊)。
注意:glow_levels/1 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第二级辉光的强度。
注意:glow_levels/2 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第三级辉光的强度。
注意:glow_levels/3 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第四级辉光的强度。
注意:glow_levels/4 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第五级辉光的强度。
注意:glow_levels/5 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第六级辉光的强度。
注意:glow_levels/6 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
第七级辉光的强度。这是最“全局”的级别(最模糊)。
注意:glow_levels/7 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
该纹理应被用作一个辉光贴图,以根据 glow_map_strength 乘以 生成的辉光颜色。这可以用来创建一个“镜头污垢”效果。该纹理的 RGB 颜色通道被用于调制,但 Alpha 通道将被忽略。
注意:该纹理将被拉伸以适应屏幕。因此,建议使用长宽比与项目的基本长宽比(通常为 16:9)相匹配的纹理。
注意:glow_map 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。
float glow_map_strength = 0.8
🔗
glow_map 应该对整体发光效果产生多大的影响。0.0
的强度,表示辉光贴图对整体辉光效果没有影响。1.0
的强度,表示辉光对整体辉光效果具有完全的效果(如果辉光贴图有黑色区域,则可以在屏幕的特定区域完全关闭辉光)。
注意:glow_map_strength 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。
当使用 GLOW_BLEND_MODE_MIX glow_blend_mode 时,它控制源图像与辉光层混合的程度。0.0
的值使辉光渲染不可见,而 1.0
的值等效于 GLOW_BLEND_MODE_REPLACE。
注意:glow_mix 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。
bool glow_normalized = false
🔗
如果为 true
,则辉光级别将被归一化,以便它们的强度总和等于 1.0
。
注意:glow_normalized 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。
辉光效果的强度。适用于屏幕上的辉光模糊,能够增加模糊的距离和强度。使用 Mobile 渲染方法时应将其提高,对低动态范围进行补偿。
注意:glow_strength 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。
ReflectionSource reflected_light_source = 0
🔗
void set_reflection_source(value: ReflectionSource)
ReflectionSource get_reflection_source()
反射(镜面反射)光源。
float sdfgi_bounce_feedback = 0.5
🔗
使用 SDFGI 时,每次从表面反弹时应用于光的能量倍增器。大于 0.0
的值将模拟多次反弹,从而产生更逼真的外观。增加 sdfgi_bounce_feedback 通常对性能没有影响。另见 sdfgi_energy。
注意:大于 0.5
的值会导致无限的反馈循环,应避免在具有明亮材质的场景中使用。
注意:如果 sdfgi_bounce_feedback 为 0.0
,间接照明会在反射中表现出来,因为光只会反弹一次。
float sdfgi_cascade0_distance = 12.8
🔗
注意:该属性被链接到 sdfgi_min_cell_size 和 sdfgi_max_distance。更改其值也会自动更改这些属性。
用于 SDFGI 的级联数(1 到 8 之间)。更高的级联数会以性能为代价,允许在更远的地方显示 SDFGI,同时保持近距离的细节。在小型关卡上使用 SDFGI 时,通常 sdfgi_cascades 可以被降低到 1
和 4
之间以提高性能。
如果为 true
,则为将 GeometryInstance3D.gi_mode 设置为 GeometryInstance3D.GI_MODE_STATIC 的网格,启用有符号距离场全局照明(即 SDFGI)。SDFGI 是一种实时全局照明技术,适用于程序生成和用户构建的关卡,包括在游戏过程中创建几何体的情况。有符号距离场会在相机移动时自动围绕相机生成。支持动态光,但不支持动态遮挡物和自发光表面。
注意:SDFGI 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。
性能:SDFGI 对 GPU 的要求比较高,不适合集成显卡等低端硬件(可以考虑 LightmapGI)。要提高 SDFGI 性能,请在项目设置中启用 ProjectSettings.rendering/global_illumination/gi/use_half_resolution。
注意:网格应该有足够厚的壁以避免漏光(避免单面壁)。对于内部关卡,将关卡几何体放入一个足够大的盒子中,并桥接循环边以闭合网格。
用于 SDFGI 的能量乘数。较高的值将导致更亮的间接照明和反射。另见 sdfgi_bounce_feedback。
float sdfgi_max_distance = 204.8
🔗
SDFGI 可见的最大距离。超出该距离,环境照明或其他 GI 来源(例如 ReflectionProbe)将用作后备。
注意:该属性被链接到 sdfgi_min_cell_size 和 sdfgi_cascade0_distance。更改其值,也会自动更改这些属性。
float sdfgi_min_cell_size = 0.2
🔗
用于最接近的 SDFGI 级联的像元大小(以 3D 单位表示)。较低的值允许 SDFGI 近距离更精确,但代价是 SDFGI 更新要求更高。当相机快速移动时,这可能会导致卡顿。较高的值允许 SDFGI 覆盖更多的范围,同时也降低了 SDFGI 更新对性能的影响。
注意:该属性被链接到 sdfgi_max_distance 和 sdfgi_cascade0_distance。更改其值也会自动更改这些属性。
float sdfgi_normal_bias = 1.1
🔗
用于 SDFGI 探针的正常偏差。增加此值可以减少倾斜表面上的可见条纹伪影,但会增加漏光。
float sdfgi_probe_bias = 1.1
🔗
用于 SDFGI 探针的恒定偏差。增加此值可以减少倾斜表面上的可见条纹伪影,但会增加漏光。
bool sdfgi_read_sky_light = true
🔗
如果为 true
,则 SDFGI 会考虑环境光照。对于室内场景,这应该被设置为 false
。
bool sdfgi_use_occlusion = false
🔗
如果为 true
,SDFGI 使用遮挡检测方法来减少漏光。然而,遮挡可能会在某些位置引入暗斑,这在大多数户外场景中可能是不希望的。sdfgi_use_occlusion 对性能有影响,只应在需要时启用。
SDFGIYScale sdfgi_y_scale = 1
🔗
void set_sdfgi_y_scale(value: SDFGIYScale)
SDFGIYScale get_sdfgi_y_scale()
用于 SDFGI 单元格的 Y 缩放。较低的值将导致 SDFGI 单元格在 Y 轴上更紧密地堆积在一起。这用于在质量和覆盖大量垂直地面之间取得平衡。sdfgi_y_scale 应该根据场景的垂直程度(以及相机在 Y 轴上移动的速度)来设置。
该 Environment 所使用的 Sky 资源。
如果被设置为大于 0.0
的值,则会覆盖用于天空渲染的视野。如果被设置为 0.0
,则使用与当前 Camera3D 相同的 FOV 进行天空渲染。
Vector3 sky_rotation = Vector3(0, 0, 0)
🔗
用于天空渲染的旋转。
float ssao_ao_channel_affect = 0.0
🔗
定义了AO纹理的材质的屏幕空间环境遮挡强度。高于0
的值将使SSAO效果在AO纹理变暗的区域可见。
设置屏幕空间环境遮蔽效果的附加细节级别的强度。高的值会使细节传递更加突出,但它可能会导致最终图像中出现锯齿。
如果为 true
,则启用屏幕空间环境光遮蔽效果。这会使物体的角落和空腔变暗,以模拟环境光像现实生活中那样不会到达整个物体。这适用于小型动态对象,但烘焙照明或环境光遮蔽纹理,在大型静态对象上显示环境光遮蔽方面效果更好。Godot 使用一种称为自适应屏幕空间环境光遮蔽的 SSAO 形式,它本身就是一种基于地平线的环境光遮蔽形式。
注意:SSAO 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。
用于考虑表面上给定点是否被遮挡的阈值,表示为与地平线的角度,映射到 0.0-1.0
范围。1.0
的值不会导致遮蔽。
主要屏幕空间的环境光遮蔽强度。用作屏幕空间环境光遮蔽效果的乘数。较高的值会导致较暗的遮蔽。
float ssao_light_affect = 0.0
🔗
直射光下的屏幕空间环境光遮蔽强度。在现实生活中,环境遮挡只适用于间接光,也就是说在直射光下无法看到其效果。高于0
的数值将使SSAO效果在直射光下可见。
光遮蔽的分布。更高的值会导致更暗的光遮蔽,类似于 ssao_intensity,但衰减更剧烈。
计算屏幕空间环境光遮蔽时,对象可以相互遮蔽的距离。较高的值将导致以性能和质量为代价的更远距离的光遮蔽。
允许屏幕空间环境光遮蔽效果,在对象边缘上模糊的量。设置太高,会导致对象边缘出现锯齿。设置太低,会使对象边缘显得模糊。
如果为 true
,则启用屏幕空间间接照明效果。屏幕空间间接照明是一种间接照明形式,它允许漫射光在附近的物体之间反射。屏幕空间间接照明与屏幕空间环境光遮蔽的工作方式非常相似,因为它只影响有限的范围。它旨在与 SDFGI 或 VoxelGI 等适当的全局照明形式一起使用。屏幕空间间接光照不受单个光源 Light3D.light_indirect_energy 的影响。
注意:SSIL 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。
屏幕空间间接照明效果的亮度倍增器。更高的值会产生更亮的光。
float ssil_normal_rejection = 1.0
🔗
计算屏幕空间间接照明时,使用的法线抛弃量。法线抛弃使用给定样本点的法线,来抛弃远离当前像素的样本。当只有物体的一侧被照亮时,为了避免漏光法线抛弃是必要的。但是,如果需要漏光,则可以禁用法线抛弃,例如当场景主要包含自发光对象,且其发光面从相机无法看到时。
使用屏幕空间间接照明效果时,反射光可以传播的距离。较大的值,会导致光线在场景中进一步反弹,但可能会导致采样不足的伪影,看起来像光源周围的长尖峰。
允许屏幕空间间接照明效果,在对象边缘上模糊的量。设置太高,会导致对象边缘出现锯齿。设置太低,会使对象边缘显得模糊。
float ssr_depth_tolerance = 0.2
🔗
屏幕空间反射的深度公差。
如果为 true
,则启用屏幕空间反射。屏幕空间反射比来自 VoxelGI 或 ReflectionProbe 的反射更准确,但更慢并且不能反射被其他物体遮挡的表面。
注意:SSR 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。
屏幕空间反射的淡入距离。影响从反射材质到屏幕空间反射的区域。只有正值有效(负值将被钳制为 0.0
)。
屏幕空间反射的淡出距离。影响从屏幕空间反射到“全局”反射的区域。只有正值有效(负值将被钳制为 0.0
)。
屏幕空间反射的最大步数。数值越高,速度越慢。
float tonemap_exposure = 1.0
🔗
色调映射的默认曝光。值越高,图像越亮。另见 tonemap_white。
ToneMapper tonemap_mode = 0
🔗
void set_tonemapper(value: ToneMapper)
ToneMapper get_tonemapper()
要使用的色调映射模式。色调映射是对 HDR 值进行“转换”的过程,转换后的值适合在 LDR 显示器上渲染。(Godot 尚不支持在 HDR 显示器上进行渲染。)
色调映射的白色参考值(也称为“白点”)。值越高,高光处的过曝越不明显,并且整个场景也会因此而略微变暗。仅当 tonemap_mode 未设置为 TONE_MAPPER_LINEAR 时有效。另见 tonemap_exposure。
Color volumetric_fog_albedo = Color(1, 1, 1, 1)
🔗
与灯光交互时体积雾的 Color。当烟雾的反照率颜色更暗时,薄雾和雾的反照率颜色接近 Color(1, 1, 1, 1)
。
float volumetric_fog_ambient_inject = 0.0
🔗
衡量体积雾中使用的环境光的强度。值为 0.0
,意味着环境光不会影响体积雾。当 volumetric_fog_ambient_inject 设置高于 0.0
时,会有一个小的性能成本。
注意:如果 volumetric_fog_density 为 0.0
,或 volumetric_fog_albedo 是全黑的颜色,则该属性没有可见效果。
float volumetric_fog_anisotropy = 0.2
🔗
散射光穿过体积雾时的方向。接近 1.0
的值意味着几乎所有的光都是向前散射的。接近 0.0
的值表示光在所有方向上均匀散射。接近 -1.0
的值表示光主要向后散射。雾和薄雾会稍微向前散射光,而烟雾则向各个方向均匀散射光。
float volumetric_fog_density = 0.05
🔗
体积雾的基本指数密度。将其设置为希望全局拥有的最低密度。FogVolume 可用于增加或减少特定区域的密度。雾渲染如同在现实生活中一样是指数式的。
0.0
的值会禁用全局体积雾,同时允许 FogVolume 在特定区域显示体积雾。
要使体积雾作为一种体积照明解决方案,请将 volumetric_fog_density 设置为最低的非零值(0.0001
),然后将灯光的 Light3D.light_volumetric_fog_energy 增加到 10000
和 100000
之间的值,以补偿极低的密度。
float volumetric_fog_detail_spread = 2.0
🔗
视锥体素缓冲区长度的大小分布。较高的值会压缩更靠近相机的视锥体素,并将更多细节放置在更靠近相机的位置。
Color volumetric_fog_emission = Color(0, 0, 0, 1)
🔗
从体积雾发出的光。即使有自发光,体积雾也不会将光投射到其他表面上。自发光对于建立环境颜色很有用。由于体积雾效果仅使用单次散射,因此雾往往需要一点点自发光来柔化刺眼的阴影。
float volumetric_fog_emission_energy = 1.0
🔗
从体积雾发出的光的亮度。
bool volumetric_fog_enabled = false
🔗
启用体积雾效果。体积雾使用与屏幕对齐的视锥体素缓冲区,来计算短至中等范围内的精确体积散射。体积雾与 FogVolume 和灯光交互,以计算局部和全局的雾。体积雾使用一个基于消光、散射和自发光的 PBR 单一散射模型,它以密度、反照率和自发光的形式暴露给用户。
注意:体积雾只支持 Forward+ 渲染方式,不支持移动和兼容模式。
float volumetric_fog_gi_inject = 1.0
🔗
衡量体积雾的反照率颜色中使用的全局照明的强度。值为0.0
,意味着全局照明不会影响体积雾。当 volumetric_fog_gi_inject 设置高于0.0
时,会有很小的性能成本。
注意:如果 volumetric_fog_density 为 0.0
,或 volumetric_fog_albedo 是全黑的颜色,则该选项没有可见效果。
注意:在使用 volumetric_fog_gi_inject 时,只有 VoxelGI 和 SDFGI(sdfgi_enabled)会被考虑到。来自 LightmapGI、ReflectionProbe 和 SSIL(参见 ssil_enabled)的全局照明将被体积雾所忽略。
float volumetric_fog_length = 64.0
🔗
计算体积雾的距离。增加以在更大范围内计算雾,减少以在不需要长范围时添加更多细节。为了获得最佳质量的雾,请将其保持在尽可能低的水平。另请参阅 ProjectSettings.rendering/environment/volumetric_fog/volume_depth。
float volumetric_fog_sky_affect = 1.0
🔗
使用体积雾影响天空时使用的系数。1.0
表示体积雾可以完全遮蔽天空。较低的值会减少体积雾对天空渲染的影响,0.0
根本不会影响天空的渲染。
注意:即使 volumetric_fog_density 为 0.0
,volumetric_fog_sky_affect 也会影响 FogVolume。如果发现 FogVolume 在仰望天空时正在消失,请将 volumetric_fog_sky_affect 设置为 1.0
。
float volumetric_fog_temporal_reprojection_amount = 0.9
🔗
void set_volumetric_fog_temporal_reprojection_amount(value: float)
float get_volumetric_fog_temporal_reprojection_amount()
将最后一帧与当前帧混合的量。更高的数值会导致体积雾更平滑,但会使“重影”变得更糟。更低的值会减少重影,但会导致每帧时间抖动变得可见。
bool volumetric_fog_temporal_reprojection_enabled = true
🔗
void set_volumetric_fog_temporal_reprojection_enabled(value: bool)
bool is_volumetric_fog_temporal_reprojection_enabled()
在体积雾中启用时间重投影。时间重投影将当前帧的体积雾与上一帧的体积雾混合,以平滑锯齿状的边缘。性能成本最小;但是,它会导致移动 FogVolume 和 Light3D 时“重影”,并在它们身后留下痕迹。启用时间重投影时,尽量避免将 FogVolume 或 Light3D 移动得太快。短暂的动态光照效果应将 Light3D.light_volumetric_fog_energy 设置为 0.0
以避免重影。
方法说明
float get_glow_level(idx: int) const 🔗
返回辉光级别 idx
的强度。
void set_glow_level(idx: int, intensity: float) 🔗
设置辉光级别 idx
的强度。大于 0.0
时启用该级别。每个级别都依赖于前一个级别。这意味着启用较高的辉光等级会减慢辉光效果的渲染速度,即使之前的等级没有启用。