Environment

继承: Resource < RefCounted < Object

定义多个渲染选项的环境节点(如WorldEnvironment)的资源。

描述

定义多个环境操作(如背景SkyColor、环境光、雾、景深…)的环境节点(如WorldEnvironment)的资源。这些参数会影响场景的最终渲染。这些操作的顺序是:

-景深模糊

-发光

-Tonemap(自动曝光)

-调整

属性

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

一种简单的色调映射曲线,可以滚动明亮的值以防止剪切。这会导致图像看起来暗淡和低对比度。比TONE_MAPPER_LINEAR慢。

注意:tonemap_white留在1.0的默认值时,TONE_MAPPER_REINHARDT会生成与TONE_MAPPER_LINEAR相同的图像。

ToneMapper TONE_MAPPER_FILMIC = 2

使用类似胶片的色调映射曲线来防止明亮值的裁剪,并提供比TONE_MAPPER_REINHARDT更好的对比度。比TONE_MAPPER_REINHARDT稍慢。

ToneMapper TONE_MAPPER_ACES = 3

使用高对比度的胶片状色调映射曲线,并使明亮值去饱和以获得更逼真的外观。比TONE_MAPPER_FILMIC稍慢。

ToneMapper TONE_MAPPER_AGX = 4

使用类似胶片的色调映射曲线并消除明亮值以获得更逼真的外观。在保持颜色变亮时比其他色调映射器更好。最慢的色调映射选项。

注意:tonemap_white的值固定为16.29,这使得TONE_MAPPER_AGX不适合与Mobile渲染方法一起使用。


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,空中透视将被禁用。

请注意,这不是直接对Sky进行采样,而是对辐射立方体贴图进行采样。立方体贴图是在mipmap级别进行采样的,具体取决于渲染像素的深度;离得越远,采样mipmap的分辨率越高。这导致实际颜色是天空的模糊版本,离摄像机更近的模糊程度更高。最高mipmap分辨率用于Camera.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,它将等于当前摄像机的Camera.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_sky_affect如果fog_aerial_perspective1.0则无视觉效果。


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使用了不同的实现,其中一些属性不可用并且对检查器隐藏: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发光的下阈值。当使用移动渲染方法(仅支持高达2.0的较低动态范围)时,这可能需要低于1.0才能看到发光。在这种情况下,0.9的值效果很好。在2D中使用发光时,此值也需要降低到1.0以下,因为在SDR中执行2D渲染。


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

5级发光的强度。

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


float glow_levels/6 = 0.0 🔗

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

  • float get_glow_level(idx: int) const

6级辉光的强度。

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


float glow_levels/7 = 0.0 🔗

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

  • float get_glow_level(idx: int) const

第7级发光的强度。这是最“全局”的级别(最模糊)。

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


Texture glow_map 🔗

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

注意:纹理将被拉伸以适应屏幕。因此,建议使用与项目基本长宽比相匹配的纹理(通常为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的强度表示发光贴图具有完全影响力。

注意:如果发光贴图有黑色区域,1.0的值也可以完全关闭屏幕特定区域的发光效果。

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


float glow_mix = 0.05 🔗

  • void set_glow_mix(value: float)

  • float get_glow_mix()

当使用GLOW_BLEND_MODE_MIXglow_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()

辉光效果的强度。这适用于辉光在屏幕上模糊并增加模糊的距离和强度。使用移动渲染方法时,应增加这一点以补偿较低的动态范围。

注意: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,则为其GeometryRender.gi_mode设置为GeometryRender.GI_MODE_STATIC的网格启用符号距离场全局照明。SDFGI是一种实时全局照明技术,适用于程序生成和用户构建的关卡,包括在应用过程中创建几何体的情况。当摄像机移动时,符号距离场会在摄像机周围自动生成。支持动态光源,但不支持动态遮挡器和发射表面。

注意:SDFGI仅在Forward+渲染方法中受支持,不支持Mobile或Compatiity。

性能:SDFGI对GPU要求相对较高,不适合集成图形等低端硬件(考虑改为Lightmass)。要提高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,则使用与当前Camera相同的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,则启用屏幕空间环境遮挡效果。这会使物体的角落和空腔变暗,以模拟环境光没有像现实生活中那样到达整个物体。这适用于小型动态物体,但烘焙照明或环境遮挡纹理将在大型静态物体上显示环境遮挡方面做得更好。i3D使用一种称为自适应屏幕空间环境遮挡的SSAO形式,它本身就是一种基于地平线的环境遮挡形式。

注意:SSAO仅在Forward+渲染方法中受支持,不支持Mobile或Compatiity。


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等适当的全局照明形式一起使用。屏幕空间间接照明不受单个光的Light.light_indirect_energy的影响。

注意:SSIL仅在Forward+渲染方法中受支持,不支持Mobile或Compatiity。


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或Compatiity。


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

在将值提供给tonemapper之前调整值的亮度。更高的tonemap_exposure值会导致更亮的图像。另请参见tonemap_white

注:TONE_MAPPER_FILMICTONE_MAPPER_ACES的表观亮度也将分别乘以2.01.8,以产生与TONE_MAPPER_LINEAR相似的表观亮度。


ToneMapper tonemap_mode = 0 🔗

要使用的色调映射模式。色调映射是将HDR值“转换”为适合在LDR显示器上渲染的过程。(i3D还不支持在HDR显示器上渲染。)


float tonemap_white = 1.0 🔗

  • void set_tonemap_white(value: float)

  • float get_tonemap_white()

色调映射的白色参考值,它指示明亮的白色在提供给色调映射器的值的比例中的位置。对于逼真的照明,推荐的值介于6.08.0之间。较高的值会导致较少的虚化高光,但可能会使场景出现较低的对比度。另见tonemap_exposure

注意:tonemap_white在使用TONE_MAPPER_LINEARTONE_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_inject0.0以上设置时性能成本较小。

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

体积雾的基本指数密度。将其设置为全局所需的最低密度。FogVolumes可用于在特定区域添加或减去此密度。雾渲染与现实生活中一样呈指数级。

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

为了使体积雾作为体积照明解决方案工作,将volumetric_fog_density设置为最低非零值(0.0001),然后将灯的Light.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()

大小分布沿Froxel缓冲区的长度。较高的值压缩靠近摄像机的Froxel,并将更多细节放在更靠近摄像机的位置。


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

启用体积雾效果。体积雾使用屏幕对齐的Froxel缓冲区来计算中短范围内准确的体积散射。体积雾与FogVolumes和光源交互以计算局部和全局雾。体积雾使用基于消光、散射和发射的PBR单散射模型,它以密度、反照率和发射的形式暴露给用户。

注意:体积雾仅在Forward+渲染方法中受支持,不支持Mobile或Com电话。


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.0volumetric_fog_albedo为全黑色,则此效果不可见。

注:使用volumetric_fog_gi_inject时,仅考虑VoxelGI和SDFGI(sdfgi_enabled),来自LightmassReflectionProbe和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_sky_affect也会影响FogVolumes,即使volumetric_fog_density0.0。如果您注意到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()

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