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

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_REINHARDTTONE_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 🔗

  • 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()

如果设置大于 0.0(不含),会在雾的颜色和背景 Sky 的颜色之间进行混合。设置大于 0.0 时有较小的性能代价。必须将 background_mode 设置为 BG_SKY

对于模拟雾密度较低的大场景中的空气透视很有用。但对于高密度的雾来说不是很有用,因为天空会被照亮。设置为 1.0 时,雾的颜色完全来自 Sky。设置为 0.0 时,会禁用空气透视。


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()

glow_map 应该对整体发光效果产生多大的影响。0.0 的强度,表示辉光贴图对整体辉光效果没有影响。1.0 的强度,表示辉光对整体辉光效果具有完全的效果(如果辉光贴图有黑色区域,则可以在屏幕的特定区域完全关闭辉光)。

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


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()

色调映射的白色参考值(也称为“白点”)。值越高,高光处的过曝越不明显,并且整个场景也会因此而略微变暗。仅当 tonemap_mode 未设置为 TONE_MAPPER_LINEAR 时有效。另见 tonemap_exposure


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 时启用该级别。每个级别都依赖于前一个级别。这意味着启用较高的辉光等级会减慢辉光效果的渲染速度,即使之前的等级没有启用。