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.

Environment

继承: Resource < RefCounted < Object

定义渲染选项的资源,用于环境节点(例如 WorldEnvironment)。

描述

定义环境操作(例如背景 SkyColor、环境光、雾、景深等)的资源,用于环境节点(例如 WorldEnvironment)。这些参数会对场景的最终渲染造成影响。操作的顺序为:

  • 景深模糊

  • 辉光

  • 色调映射(自动曝光)

  • 调整

教程

属性

float

adjustment_brightness

1.0

Texture

adjustment_color_correction

float

adjustment_contrast

1.0

bool

adjustment_enabled

false

float

adjustment_saturation

1.0

Color

ambient_light_color

Color(0, 0, 0, 1)

float

ambient_light_energy

1.0

float

ambient_light_sky_contribution

1.0

AmbientSource

ambient_light_source

0

int

background_camera_feed_id

1

int

background_canvas_max_layer

0

Color

background_color

Color(0, 0, 0, 1)

float

background_energy_multiplier

1.0

float

background_intensity

30000.0

BGMode

background_mode

0

float

fog_aerial_perspective

0.0

float

fog_density

0.01

float

fog_depth_begin

10.0

float

fog_depth_curve

1.0

float

fog_depth_end

100.0

bool

fog_enabled

false

float

fog_height

0.0

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

fog_mode

0

float

fog_sky_affect

1.0

float

fog_sun_scatter

0.0

GlowBlendMode

glow_blend_mode

2

float

glow_bloom

0.0

bool

glow_enabled

false

float

glow_hdr_luminance_cap

12.0

float

glow_hdr_scale

2.0

float

glow_hdr_threshold

1.0

float

glow_intensity

0.8

float

glow_levels/1

0.0

float

glow_levels/2

0.0

float

glow_levels/3

1.0

float

glow_levels/4

0.0

float

glow_levels/5

1.0

float

glow_levels/6

0.0

float

glow_levels/7

0.0

Texture

glow_map

float

glow_map_strength

0.8

float

glow_mix

0.05

bool

glow_normalized

false

float

glow_strength

1.0

ReflectionSource

reflected_light_source

0

float

sdfgi_bounce_feedback

0.5

float

sdfgi_cascade0_distance

12.8

int

sdfgi_cascades

4

bool

sdfgi_enabled

false

float

sdfgi_energy

1.0

float

sdfgi_max_distance

204.8

float

sdfgi_min_cell_size

0.2

float

sdfgi_normal_bias

1.1

float

sdfgi_probe_bias

1.1

bool

sdfgi_read_sky_light

true

bool

sdfgi_use_occlusion

false

SDFGIYScale

sdfgi_y_scale

1

Sky

sky

float

sky_custom_fov

0.0

Vector3

sky_rotation

Vector3(0, 0, 0)

float

ssao_ao_channel_affect

0.0

float

ssao_detail

0.5

bool

ssao_enabled

false

float

ssao_horizon

0.06

float

ssao_intensity

2.0

float

ssao_light_affect

0.0

float

ssao_power

1.5

float

ssao_radius

1.0

float

ssao_sharpness

0.98

bool

ssil_enabled

false

float

ssil_intensity

1.0

float

ssil_normal_rejection

1.0

float

ssil_radius

5.0

float

ssil_sharpness

0.98

float

ssr_depth_tolerance

0.2

bool

ssr_enabled

false

float

ssr_fade_in

0.15

float

ssr_fade_out

2.0

int

ssr_max_steps

64

float

tonemap_exposure

1.0

ToneMapper

tonemap_mode

0

float

tonemap_white

1.0

Color

volumetric_fog_albedo

Color(1, 1, 1, 1)

float

volumetric_fog_ambient_inject

0.0

float

volumetric_fog_anisotropy

0.2

float

volumetric_fog_density

0.05

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

float

volumetric_fog_gi_inject

1.0

float

volumetric_fog_length

64.0

float

volumetric_fog_sky_affect

1.0

float

volumetric_fog_temporal_reprojection_amount

0.9

bool

volumetric_fog_temporal_reprojection_enabled

true

方法

float

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

Reinhard tonemapper operator. Performs a variation on rendered pixels' colors by this formula: color = color * (1 + color / (white * white)) / (1 + color). This avoids clipping bright highlights, but the resulting image can look a bit dull. When tonemap_white is left at the default value of 1.0 this is identical to TONE_MAPPER_LINEAR while also being slightly less performant.

ToneMapper TONE_MAPPER_FILMIC = 2

电影级色调映射器运算子。可以避免对高光处的截断,最终图像通常比 TONE_MAPPER_REINHARDT 更鲜艳。

ToneMapper TONE_MAPPER_ACES = 3

使用学院色彩编码系统(Academy Color Encoding System)色调映射器。ACES 比其他选项消耗略高,但对于较亮光照的处理更真实,越亮饱和度越低。ACES 的输出在对比度方面通常比 TONE_MAPPER_REINHARDTTONE_MAPPER_FILMIC 更高。

注意:Godot 3.x 将该色调映射运算符称为“ACES Fitted”。

ToneMapper TONE_MAPPER_AGX = 4

Use the AgX tonemapper. AgX is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. AgX is less likely to darken parts of the scene compared to TONE_MAPPER_ACES and can match the overall scene brightness of TONE_MAPPER_FILMIC more closely.


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 🔗

  • void set_adjustment_brightness(value: float)

  • float get_adjustment_brightness()

渲染场景的全局亮度值。只有当 adjustment_enabledtrue 时才有效。


Texture adjustment_color_correction 🔗

  • void set_adjustment_color_correction(value: Texture)

  • Texture get_adjustment_color_correction()

用于内置后处理颜色分级的 Texture2DTexture3D 查找表(LUT)。可以将 GradientTexture1D 用于一维 LUT,或将 Texture3D 用于更复杂的 LUT。仅当 adjustment_enabledtrue 时有效。


float adjustment_contrast = 1.0 🔗

  • void set_adjustment_contrast(value: float)

  • float get_adjustment_contrast()

渲染场景的全局对比度值(默认值为 1)。只有当 adjustment_enabledtrue 时才有效。


bool adjustment_enabled = false 🔗

  • void set_adjustment_enabled(value: bool)

  • bool is_adjustment_enabled()

如果为 true,则启用该资源提供的 adjustment_* 属性。如果为 false,则对 adjustment_* 属性的修改将不会对渲染场景产生影响。


float adjustment_saturation = 1.0 🔗

  • void set_adjustment_saturation(value: float)

  • float get_adjustment_saturation()

渲染场景的全局色彩饱和度值(默认值为 1)。只有在 adjustment_enabledtrue 时才有效。


Color ambient_light_color = Color(0, 0, 0, 1) 🔗

  • void set_ambient_light_color(value: Color)

  • Color get_ambient_light_color()

环境光的 Color。仅当 ambient_light_sky_contribution 低于 1.0(不包括)时,才有效。


float ambient_light_energy = 1.0 🔗

  • void set_ambient_light_energy(value: float)

  • float get_ambient_light_energy()

环境光的能量。值越高,光线越强。仅当 ambient_light_sky_contribution 低于 1.0(不包括)时,才有效。


float ambient_light_sky_contribution = 1.0 🔗

  • void set_ambient_light_sky_contribution(value: float)

  • float get_ambient_light_sky_contribution()

定义天空给场景带来的光照量。值为 0.0 表示天空的发光对场景照明没有影响,因此所有的环境照明都由环境光提供。相反,值为 1.0 表示所有影响场景的光线都由天空提供,因此环境光参数对场景没有影响。

注意:内部会将 ambient_light_sky_contribution 限制在 0.01.0 之间(闭区间)。


AmbientSource ambient_light_source = 0 🔗

环境光源,用于渲染材质和全局照明。


int background_camera_feed_id = 1 🔗

  • void set_camera_feed_id(value: int)

  • int get_camera_feed_id()

在背景中显示的相机源的 ID。


int background_canvas_max_layer = 0 🔗

  • void set_canvas_max_layer(value: int)

  • int get_canvas_max_layer()

要显示的最大图层 ID。只有在使用 BG_CANVAS 背景模式时有效。


Color background_color = Color(0, 0, 0, 1) 🔗

  • void set_bg_color(value: Color)

  • Color get_bg_color()

场景中清除区域显示的 Color。仅在使用 BG_COLOR 背景模式时有效。


float background_energy_multiplier = 1.0 🔗

  • void set_bg_energy_multiplier(value: float)

  • float get_bg_energy_multiplier()

背景能量的倍数。增加可以使背景更亮,减少可以使背景更暗。


float background_intensity = 30000.0 🔗

  • void set_bg_intensity(value: float)

  • float get_bg_intensity()

背景的亮度,单位是尼特(坎德拉/平方米)。仅当启用 ProjectSettings.rendering/lights_and_shadows/use_physical_light_units 时使用。默认值大致相当于正午时分的天空。


BGMode background_mode = 0 🔗

  • void set_background(value: BGMode)

  • BGMode get_background()

背景模式。可能的取值见 BGMode


float fog_aerial_perspective = 0.0 🔗

  • void set_fog_aerial_perspective(value: float)

  • float get_fog_aerial_perspective()

If set above 0.0 (exclusive), blends between the fog's color and the color of the background Sky, as read from the radiance cubemap. This has a small performance cost when set above 0.0. Must have background_mode set to BG_SKY.

This is useful to simulate aerial perspective in large scenes with low density fog. However, it is not very useful for high-density fog, as the sky will shine through. When set to 1.0, the fog color comes completely from the Sky. If set to 0.0, aerial perspective is disabled.

Notice that this does not sample the Sky directly, but rather the radiance cubemap. The cubemap is sampled at a mipmap level depending on the depth of the rendered pixel; the farther away, the higher the resolution of the sampled mipmap. This results in the actual color being a blurred version of the sky, with more blur closer to the camera. The highest mipmap resolution is used at a depth of Camera3D.far.


float fog_density = 0.01 🔗

  • void set_fog_density(value: float)

  • float get_fog_density()

要使用的雾密度。根据所选的 fog_mode 模式,可以通过不同的方式进行演示:

指数雾模式:数值越高,雾就越浓。雾渲染就像现实生活中一样呈指数级增长。

深度雾模式:深度雾的最大强度,效果将出现在远处(相对于相机)。在 1.0 处,雾将完全遮盖场景,在 0.0 处,雾将不可见。


float fog_depth_begin = 10.0 🔗

  • void set_fog_depth_begin(value: float)

  • float get_fog_depth_begin()

雾距相机的深度起始距离。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。


float fog_depth_curve = 1.0 🔗

  • void set_fog_depth_curve(value: float)

  • float get_fog_depth_curve()

雾深度的强度曲线。通过右键点击曲线,可以在检查器中使用许多预设。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。


float fog_depth_end = 100.0 🔗

  • void set_fog_depth_end(value: float)

  • float get_fog_depth_end()

雾距相机的深度结束的距离。如果该值被设置为 0,它将等于当前相机的 Camera3D.far 值。仅当 fog_mode 被设置为 FOG_MODE_DEPTH 时可用。


bool fog_enabled = false 🔗

  • void set_fog_enabled(value: bool)

  • bool is_fog_enabled()

如果为 true,则启用雾效果。


float fog_height = 0.0 🔗

  • void set_fog_height(value: float)

  • float get_fog_height()

高度雾效果开始的高度。


float fog_height_density = 0.0 🔗

  • void set_fog_height_density(value: float)

  • float get_fog_height_density()

用于随着高度降低而增加雾的密度。要使雾随着高度增加而增加,请使用负值。


Color fog_light_color = Color(0.518, 0.553, 0.608, 1) 🔗

  • void set_fog_light_color(value: Color)

  • Color get_fog_light_color()

雾的颜色。


float fog_light_energy = 1.0 🔗

  • void set_fog_light_energy(value: float)

  • float get_fog_light_energy()

雾的亮度。值越高,雾越亮。


FogMode fog_mode = 0 🔗

雾模式。可能的取值见 FogMode


float fog_sky_affect = 1.0 🔗

  • void set_fog_sky_affect(value: float)

  • float get_fog_sky_affect()

非体积雾影响天空时使用的系数。1.0 表示雾可以完全遮蔽天空。较低的值会减少雾对天空渲染的影响,0.0 完全不影响天空的渲染。

注意:如果 fog_aerial_perspective1.0fog_sky_affect 不会有视觉效果。


float fog_sun_scatter = 0.0 🔗

  • void set_fog_sun_scatter(value: float)

  • float get_fog_sun_scatter()

如果设置为 0.0 以上,则根据视角以雾色渲染场景的定向光。这可以用来给人一种太阳正在“穿透”雾的印象。


GlowBlendMode glow_blend_mode = 2 🔗

辉光混合模式。

注意:glow_blend_mode 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_bloom = 0.0 🔗

  • void set_glow_bloom(value: float)

  • float get_glow_bloom()

泛光的强度。如果设置为大于 0 的值,则将在比 glow_hdr_threshold 成员更暗的区域中显示辉光。


bool glow_enabled = false 🔗

  • void set_glow_enabled(value: bool)

  • bool is_glow_enabled()

如果为 true,则会启用辉光效果。这个效果模拟的是真实世界中眼睛/相机的行为,亮度很高的像素会溢出到周围的像素中。

注意:使用“移动”渲染方法时,辉光的外观会不一样,因为“移动”渲染方法中只能使用低动态范围。

注意:使用“兼容”渲染方法时,辉光的实现方式不同,部分属性不可用,会在检查器中隐藏:glow_levels/*glow_normalizedglow_strengthglow_blend_modeglow_mixglow_mapglow_map_strength。这种实现方式是针对在低端设备上运行而优化的,因此灵活性较差。


float glow_hdr_luminance_cap = 12.0 🔗

  • void set_glow_hdr_luminance_cap(value: float)

  • float get_glow_hdr_luminance_cap()

HDR 辉光的较高阈值。比这个阈值更亮的区域将被限制,以达到辉光效果的目的。


float glow_hdr_scale = 2.0 🔗

  • void set_glow_hdr_bleed_scale(value: float)

  • float get_glow_hdr_bleed_scale()

HDR 辉光的逸出缩放。


float glow_hdr_threshold = 1.0 🔗

  • void set_glow_hdr_bleed_threshold(value: float)

  • float get_glow_hdr_bleed_threshold()

HDR 辉光的下限阈值。当使用 Mobile 渲染方法时(仅支持较低的动态范围,最大为 2.0),需要低于 1.0 才能看到辉光。在这种情况下取 0.9 可以达到不错的效果。在 2D 中使用辉光时也需要降低到 1.0 以下,因为 2D 渲染使用 SDR。


float glow_intensity = 0.8 🔗

  • void set_glow_intensity(value: float)

  • float get_glow_intensity()

辉光效果的整体亮度倍数。使用 Mobile 渲染方法时(仅支持较低的动态范围,最大为 2.0),应将其增加到 1.5 进行补偿。


float glow_levels/1 = 0.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第一层辉光的强度。这是最“局部”的层级(最不模糊)。

注意:glow_levels/1 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/2 = 0.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第二层辉光的强度。

注意:glow_levels/2 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/3 = 1.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第三层辉光的强度。

注意:glow_levels/3 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/4 = 0.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第四层辉光的强度。

注意:glow_levels/4 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/5 = 1.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第五层辉光的强度。

注意:glow_levels/5 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/6 = 0.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第六层辉光的强度。

注意:glow_levels/6 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_levels/7 = 0.0 🔗

  • void set_glow_level(idx: int, intensity: float)

  • float get_glow_level(idx: int) const

第七层辉光的强度。这是最“全局”的层级(最模糊)。

注意:glow_levels/7 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


Texture glow_map 🔗

该纹理应被用作一个辉光贴图,以根据 glow_map_strength 乘以 生成的辉光颜色。这可以用来创建一个“镜头污垢”效果。该纹理的 RGB 颜色通道被用于调制,但 Alpha 通道将被忽略。

注意:该纹理将被拉伸以适应屏幕。因此,建议使用长宽比与项目的基本长宽比(通常为 16:9)相匹配的纹理。

注意:glow_map 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_map_strength = 0.8 🔗

  • void set_glow_map_strength(value: float)

  • float get_glow_map_strength()

How strong of an influence the glow_map should have on the overall glow effect. A strength of 0.0 means the glow map has no influence, while a strength of 1.0 means the glow map has full influence.

Note: If the glow map has black areas, a value of 1.0 can also turn off the glow effect entirely in specific areas of the screen.

Note: glow_map_strength has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices.


float glow_mix = 0.05 🔗

  • void set_glow_mix(value: float)

  • float get_glow_mix()

当使用 GLOW_BLEND_MODE_MIX glow_blend_mode 时,它控制源图像与辉光层混合的程度。0.0 的值使辉光渲染不可见,而 1.0 的值等效于 GLOW_BLEND_MODE_REPLACE

注意:glow_mix 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。


bool glow_normalized = false 🔗

  • void set_glow_normalized(value: bool)

  • bool is_glow_normalized()

如果为 true,则辉光层级将被归一化,以便它们的强度总和等于 1.0

注意:glow_normalized 在使用兼容性渲染方法时没有效果,因为这种渲染方法使用针对低端设备优化的更简单的辉光实现。


float glow_strength = 1.0 🔗

  • void set_glow_strength(value: float)

  • float get_glow_strength()

辉光效果的强度。适用于屏幕上的辉光模糊,能够增加模糊的距离和强度。使用 Mobile 渲染方法时应将其提高,对低动态范围进行补偿。

注意:glow_strength 在使用兼容性渲染方法时没有效果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。


ReflectionSource reflected_light_source = 0 🔗

反射(镜面反射)光源。


float sdfgi_bounce_feedback = 0.5 🔗

  • void set_sdfgi_bounce_feedback(value: float)

  • float get_sdfgi_bounce_feedback()

使用 SDFGI 时,每次从表面反弹时应用于光的能量倍增器。大于 0.0 的值将模拟多次反弹,从而产生更逼真的外观。增加 sdfgi_bounce_feedback 通常对性能没有影响。另见 sdfgi_energy

注意:大于 0.5 的值会导致无限的反馈循环,应避免在具有明亮材质的场景中使用。

注意:如果 sdfgi_bounce_feedback0.0,间接照明会在反射中表现出来,因为光只会反弹一次。


float sdfgi_cascade0_distance = 12.8 🔗

  • void set_sdfgi_cascade0_distance(value: float)

  • float get_sdfgi_cascade0_distance()

注意:该属性被链接到 sdfgi_min_cell_sizesdfgi_max_distance。更改其值也会自动更改这些属性。


int sdfgi_cascades = 4 🔗

  • void set_sdfgi_cascades(value: int)

  • int get_sdfgi_cascades()

用于 SDFGI 的级联数(1 到 8 之间)。更高的级联数会以性能为代价,允许在更远的地方显示 SDFGI,同时保持近距离的细节。在小型关卡上使用 SDFGI 时,通常 sdfgi_cascades 可以被降低到 14 之间以提高性能。


bool sdfgi_enabled = false 🔗

  • void set_sdfgi_enabled(value: bool)

  • bool is_sdfgi_enabled()

如果为 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

注意:网格应该有足够厚的壁以避免漏光(避免单面壁)。对于内部关卡,将关卡几何体放入一个足够大的盒子中,并桥接循环边以闭合网格。


float sdfgi_energy = 1.0 🔗

  • void set_sdfgi_energy(value: float)

  • float get_sdfgi_energy()

用于 SDFGI 的能量乘数。较高的值将导致更亮的间接照明和反射。另见 sdfgi_bounce_feedback


float sdfgi_max_distance = 204.8 🔗

  • void set_sdfgi_max_distance(value: float)

  • float get_sdfgi_max_distance()

SDFGI 可见的最大距离。超出该距离,环境照明或其他 GI 来源(例如 ReflectionProbe)将用作后备。

注意:该属性被链接到 sdfgi_min_cell_sizesdfgi_cascade0_distance。更改其值,也会自动更改这些属性。


float sdfgi_min_cell_size = 0.2 🔗

  • void set_sdfgi_min_cell_size(value: float)

  • float get_sdfgi_min_cell_size()

用于最接近的 SDFGI 级联的像元大小(以 3D 单位表示)。较低的值允许 SDFGI 近距离更精确,但代价是 SDFGI 更新要求更高。当相机快速移动时,这可能会导致卡顿。较高的值允许 SDFGI 覆盖更多的范围,同时也降低了 SDFGI 更新对性能的影响。

注意:该属性被链接到 sdfgi_max_distancesdfgi_cascade0_distance。更改其值也会自动更改这些属性。


float sdfgi_normal_bias = 1.1 🔗

  • void set_sdfgi_normal_bias(value: float)

  • float get_sdfgi_normal_bias()

用于 SDFGI 探针的正常偏差。增加此值可以减少倾斜表面上的可见条纹伪影,但会增加漏光。


float sdfgi_probe_bias = 1.1 🔗

  • void set_sdfgi_probe_bias(value: float)

  • float get_sdfgi_probe_bias()

用于 SDFGI 探针的恒定偏差。增加此值可以减少倾斜表面上的可见条纹伪影,但会增加漏光。


bool sdfgi_read_sky_light = true 🔗

  • void set_sdfgi_read_sky_light(value: bool)

  • bool is_sdfgi_reading_sky_light()

如果为 true,则 SDFGI 会考虑环境光照。对于室内场景,这应该被设置为 false


bool sdfgi_use_occlusion = false 🔗

  • void set_sdfgi_use_occlusion(value: bool)

  • bool is_sdfgi_using_occlusion()

如果为 true,SDFGI 使用遮挡检测方法来减少漏光。然而,遮挡可能会在某些位置引入暗斑,这在大多数户外场景中可能是不希望的。sdfgi_use_occlusion 对性能有影响,只应在需要时启用。


SDFGIYScale sdfgi_y_scale = 1 🔗

用于 SDFGI 单元格的 Y 缩放。较低的值将导致 SDFGI 单元格在 Y 轴上更紧密地堆积在一起。这用于在质量和覆盖大量垂直地面之间取得平衡。sdfgi_y_scale 应该根据场景的垂直程度(以及相机在 Y 轴上移动的速度)来设置。


Sky sky 🔗

  • void set_sky(value: Sky)

  • Sky get_sky()

Environment 所使用的 Sky 资源。


float sky_custom_fov = 0.0 🔗

  • void set_sky_custom_fov(value: float)

  • float get_sky_custom_fov()

如果被设置为大于 0.0 的值,则会覆盖用于天空渲染的视野。如果被设置为 0.0,则使用与当前 Camera3D 相同的 FOV 进行天空渲染。


Vector3 sky_rotation = Vector3(0, 0, 0) 🔗

用于天空渲染的旋转。


float ssao_ao_channel_affect = 0.0 🔗

  • void set_ssao_ao_channel_affect(value: float)

  • float get_ssao_ao_channel_affect()

定义了AO纹理的材质的屏幕空间环境遮挡强度。高于0的值将使SSAO效果在AO纹理变暗的区域可见。


float ssao_detail = 0.5 🔗

  • void set_ssao_detail(value: float)

  • float get_ssao_detail()

设置屏幕空间环境遮蔽效果的附加细节级别的强度。高的值会使细节传递更加突出,但它可能会导致最终图像中出现锯齿。


bool ssao_enabled = false 🔗

  • void set_ssao_enabled(value: bool)

  • bool is_ssao_enabled()

如果为 true,则启用屏幕空间环境光遮蔽效果。这会使物体的角落和空腔变暗,以模拟环境光像现实生活中那样不会到达整个物体。这适用于小型动态对象,但烘焙照明或环境光遮蔽纹理,在大型静态对象上显示环境光遮蔽方面效果更好。Godot 使用一种称为自适应屏幕空间环境光遮蔽的 SSAO 形式,它本身就是一种基于地平线的环境光遮蔽形式。

注意:SSAO 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。


float ssao_horizon = 0.06 🔗

  • void set_ssao_horizon(value: float)

  • float get_ssao_horizon()

用于考虑表面上给定点是否被遮挡的阈值,表示为与地平线的角度,映射到 0.0-1.0 范围。1.0 的值不会导致遮蔽。


float ssao_intensity = 2.0 🔗

  • void set_ssao_intensity(value: float)

  • float get_ssao_intensity()

主要屏幕空间的环境光遮蔽强度。用作屏幕空间环境光遮蔽效果的乘数。较高的值会导致较暗的遮蔽。


float ssao_light_affect = 0.0 🔗

  • void set_ssao_direct_light_affect(value: float)

  • float get_ssao_direct_light_affect()

直射光下的屏幕空间环境光遮蔽强度。在现实生活中,环境遮挡只适用于间接光,也就是说在直射光下无法看到其效果。高于0的数值将使SSAO效果在直射光下可见。


float ssao_power = 1.5 🔗

  • void set_ssao_power(value: float)

  • float get_ssao_power()

光遮蔽的分布。更高的值会导致更暗的光遮蔽,类似于 ssao_intensity,但衰减更剧烈。


float ssao_radius = 1.0 🔗

  • void set_ssao_radius(value: float)

  • float get_ssao_radius()

计算屏幕空间环境光遮蔽时,对象可以相互遮蔽的距离。较高的值将导致以性能和质量为代价的更远距离的光遮蔽。


float ssao_sharpness = 0.98 🔗

  • void set_ssao_sharpness(value: float)

  • float get_ssao_sharpness()

允许屏幕空间环境光遮蔽效果,在对象边缘上模糊的量。设置太高,会导致对象边缘出现锯齿。设置太低,会使对象边缘显得模糊。


bool ssil_enabled = false 🔗

  • void set_ssil_enabled(value: bool)

  • bool is_ssil_enabled()

如果为 true,则启用屏幕空间间接照明效果。屏幕空间间接照明是一种间接照明形式,它允许漫射光在附近的物体之间反射。屏幕空间间接照明与屏幕空间环境光遮蔽的工作方式非常相似,因为它只影响有限的范围。它旨在与 SDFGI 或 VoxelGI 等适当的全局照明形式一起使用。屏幕空间间接光照不受单个光源 Light3D.light_indirect_energy 的影响。

注意:SSIL 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。


float ssil_intensity = 1.0 🔗

  • void set_ssil_intensity(value: float)

  • float get_ssil_intensity()

屏幕空间间接照明效果的亮度倍增器。更高的值会产生更亮的光。


float ssil_normal_rejection = 1.0 🔗

  • void set_ssil_normal_rejection(value: float)

  • float get_ssil_normal_rejection()

计算屏幕空间间接照明时,使用的法线抛弃量。法线抛弃使用给定样本点的法线,来抛弃远离当前像素的样本。当只有物体的一侧被照亮时,为了避免漏光法线抛弃是必要的。但是,如果需要漏光,则可以禁用法线抛弃,例如当场景主要包含自发光对象,且其发光面从相机无法看到时。


float ssil_radius = 5.0 🔗

  • void set_ssil_radius(value: float)

  • float get_ssil_radius()

使用屏幕空间间接照明效果时,反射光可以传播的距离。较大的值,会导致光线在场景中进一步反弹,但可能会导致采样不足的伪影,看起来像光源周围的长尖峰。


float ssil_sharpness = 0.98 🔗

  • void set_ssil_sharpness(value: float)

  • float get_ssil_sharpness()

允许屏幕空间间接照明效果,在对象边缘上模糊的量。设置太高,会导致对象边缘出现锯齿。设置太低,会使对象边缘显得模糊。


float ssr_depth_tolerance = 0.2 🔗

  • void set_ssr_depth_tolerance(value: float)

  • float get_ssr_depth_tolerance()

屏幕空间反射的深度公差。


bool ssr_enabled = false 🔗

  • void set_ssr_enabled(value: bool)

  • bool is_ssr_enabled()

如果为 true,则启用屏幕空间反射。屏幕空间反射比来自 VoxelGIReflectionProbe 的反射更准确,但更慢并且不能反射被其他物体遮挡的表面。

注意:SSR 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。


float ssr_fade_in = 0.15 🔗

  • void set_ssr_fade_in(value: float)

  • float get_ssr_fade_in()

屏幕空间反射的淡入距离。影响从反射材质到屏幕空间反射的区域。只有正值有效(负值将被钳制为 0.0)。


float ssr_fade_out = 2.0 🔗

  • void set_ssr_fade_out(value: float)

  • float get_ssr_fade_out()

屏幕空间反射的淡出距离。影响从屏幕空间反射到“全局”反射的区域。只有正值有效(负值将被钳制为 0.0)。


int ssr_max_steps = 64 🔗

  • void set_ssr_max_steps(value: int)

  • int get_ssr_max_steps()

屏幕空间反射的最大步数。数值越高,速度越慢。


float tonemap_exposure = 1.0 🔗

  • void set_tonemap_exposure(value: float)

  • float get_tonemap_exposure()

色调映射的默认曝光。值越高,图像越亮。另见 tonemap_white


ToneMapper tonemap_mode = 0 🔗

要使用的色调映射模式。色调映射是对 HDR 值进行“转换”的过程,转换后的值适合在 LDR 显示器上渲染。(Godot 尚不支持在 HDR 显示器上进行渲染。)


float tonemap_white = 1.0 🔗

  • void set_tonemap_white(value: float)

  • float get_tonemap_white()

The white reference value for tonemapping (also called "whitepoint"). Higher values can make highlights look less blown out, and will also slightly darken the whole scene as a result. See also tonemap_exposure.

Note: tonemap_white is ignored when using TONE_MAPPER_LINEAR or TONE_MAPPER_AGX.


Color volumetric_fog_albedo = Color(1, 1, 1, 1) 🔗

  • void set_volumetric_fog_albedo(value: Color)

  • Color get_volumetric_fog_albedo()

与灯光交互时体积雾的 Color。当烟雾的反照率颜色更暗时,薄雾和雾的反照率颜色接近 Color(1, 1, 1, 1)


float volumetric_fog_ambient_inject = 0.0 🔗

  • void set_volumetric_fog_ambient_inject(value: float)

  • float get_volumetric_fog_ambient_inject()

衡量体积雾中使用的环境光的强度。值为 0.0 ,意味着环境光不会影响体积雾。当 volumetric_fog_ambient_inject 设置高于 0.0 时,会有一个小的性能成本。

注意:如果 volumetric_fog_density0.0,或 volumetric_fog_albedo 是全黑的颜色,则该属性没有可见效果。


float volumetric_fog_anisotropy = 0.2 🔗

  • void set_volumetric_fog_anisotropy(value: float)

  • float get_volumetric_fog_anisotropy()

散射光穿过体积雾时的方向。接近 1.0 的值意味着几乎所有的光都是向前散射的。接近 0.0 的值表示光在所有方向上均匀散射。接近 -1.0 的值表示光主要向后散射。雾和薄雾会稍微向前散射光,而烟雾则向各个方向均匀散射光。


float volumetric_fog_density = 0.05 🔗

  • void set_volumetric_fog_density(value: float)

  • float get_volumetric_fog_density()

体积雾的基本指数密度。将其设置为希望全局拥有的最低密度。FogVolume 可用于增加或减少特定区域的密度。雾渲染如同在现实生活中一样是指数式的。

0.0 的值会禁用全局体积雾,同时允许 FogVolume 在特定区域显示体积雾。

要使体积雾作为一种体积照明解决方案,请将 volumetric_fog_density 设置为最低的非零值(0.0001),然后将灯光的 Light3D.light_volumetric_fog_energy 增加到 10000100000 之间的值,以补偿极低的密度。


float volumetric_fog_detail_spread = 2.0 🔗

  • void set_volumetric_fog_detail_spread(value: float)

  • float get_volumetric_fog_detail_spread()

视锥体素缓冲区长度的大小分布。较高的值会压缩更靠近相机的视锥体素,并将更多细节放置在更靠近相机的位置。


Color volumetric_fog_emission = Color(0, 0, 0, 1) 🔗

  • void set_volumetric_fog_emission(value: Color)

  • Color get_volumetric_fog_emission()

从体积雾发出的光。即使有自发光,体积雾也不会将光投射到其他表面上。自发光对于建立环境颜色很有用。由于体积雾效果仅使用单次散射,因此雾往往需要一点点自发光来柔化刺眼的阴影。


float volumetric_fog_emission_energy = 1.0 🔗

  • void set_volumetric_fog_emission_energy(value: float)

  • float get_volumetric_fog_emission_energy()

从体积雾发出的光的亮度。


bool volumetric_fog_enabled = false 🔗

  • void set_volumetric_fog_enabled(value: bool)

  • bool is_volumetric_fog_enabled()

启用体积雾效果。体积雾使用与屏幕对齐的视锥体素缓冲区,来计算短至中等范围内的精确体积散射。体积雾与 FogVolume 和灯光交互,以计算局部和全局的雾。体积雾使用一个基于消光、散射和自发光的 PBR 单一散射模型,它以密度、反照率和自发光的形式暴露给用户。

注意:体积雾只支持 Forward+ 渲染方式,不支持移动和兼容模式。


float volumetric_fog_gi_inject = 1.0 🔗

  • void set_volumetric_fog_gi_inject(value: float)

  • float get_volumetric_fog_gi_inject()

衡量体积雾的反照率颜色中使用的全局照明的强度。值为0.0 ,意味着全局照明不会影响体积雾。当 volumetric_fog_gi_inject 设置高于0.0 时,会有很小的性能成本。

注意:如果 volumetric_fog_density0.0,或 volumetric_fog_albedo 是全黑的颜色,则该选项没有可见效果。

注意:在使用 volumetric_fog_gi_inject 时,只有 VoxelGI 和 SDFGI(sdfgi_enabled)会被考虑到。来自 LightmapGIReflectionProbe 和 SSIL(参见 ssil_enabled)的全局照明将被体积雾所忽略。


float volumetric_fog_length = 64.0 🔗

  • void set_volumetric_fog_length(value: float)

  • float get_volumetric_fog_length()

计算体积雾的距离。增加以在更大范围内计算雾,减少以在不需要长范围时添加更多细节。为了获得最佳质量的雾,请将其保持在尽可能低的水平。另请参阅 ProjectSettings.rendering/environment/volumetric_fog/volume_depth


float volumetric_fog_sky_affect = 1.0 🔗

  • void set_volumetric_fog_sky_affect(value: float)

  • float get_volumetric_fog_sky_affect()

使用体积雾影响天空时使用的系数。1.0表示体积雾可以完全遮蔽天空。较低的值会减少体积雾对天空渲染的影响,0.0 根本不会影响天空的渲染。

注意:即使 volumetric_fog_density0.0volumetric_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()

在体积雾中启用时间重投影。时间重投影将当前帧的体积雾与上一帧的体积雾混合,以平滑锯齿状的边缘。性能成本最小;但是,它会导致移动 FogVolumeLight3D 时“重影”,并在它们身后留下痕迹。启用时间重投影时,尽量避免将 FogVolumeLight3D 移动得太快。短暂的动态光照效果应将 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 时启用该级别。每个级别都依赖于前一个级别。这意味着启用较高的辉光等级会减慢辉光效果的渲染速度,即使之前的等级没有启用。