在本页

ExtendedSceneEnvironment QML Type

SceneEnvironment 提供常用的渲染效果。更多

Import Statement: import QtQuick3D.Helpers
Since: Qt 6.5
Inherits:

SceneEnvironment

属性

详细说明

ExtendedSceneEnvironmentQtQuick3DSceneEnvironment 类型的扩展,内置一系列常用特效。这些特效通过一组以特效名称为前缀的属性显示出来。

启用一个或多个特效时,效果类似于在SceneEnvironmenteffects 列表中手动添加后期处理特效。然而,ExtendedSceneEnvironment 提供的特效是独立形式所不具备的,更重要的是,它能有效地组合已启用的特效,从而减少所需的额外渲染通道数量,这与在场景中应用单独的后期处理特效相比,能大大提高性能。ExtendedSceneEnvironment 还能很好地使用色调映射,即使是更复杂的多通道特效,以及启用多个特效并将其组合在一起时也是如此。而独立特效并非总是如此。

注: 如果在SceneEnvironmenteffects 列表中添加了额外的后期处理效果,那么这些效果将在ExtendedSceneEnvironment 类型提供的效果之前应用。

SceneEnvironment 的某些功能(如色调映射)可通过 ExtendedSceneEnvironment 中的附加属性继承和扩展。例如,SceneEnvironment 提供了tonemapMode 属性,而 ExtendedSceneEnvironment 则增加了对色调映射的曝光、白点、锐化和抖动设置的控制。不过,由于 ExtendedSceneEnvironment 继承了SceneEnvironment 中的所有内容,所以tonemapMode 属性不会重复,因此无论哪种环境类型与View3D 关联,色调映射模式的基本设置都是可用的,但附加属性只有在使用 ExtendedSceneEnvironment 时才可用。其他效果,如屏幕空间环境遮蔽(SSAO)或雾完全属于SceneEnvironment 的一部分,两种类型的环境均可使用。

开始使用扩展场景环境

要使用 ExtendedSceneEnvironment 提供的附加功能,请将View3D 与它的实例关联起来。不要忘记导入QtQuick3D.Helpers 模块。

import QtQuick3D
import QtQuick3D.Helpers

View3D {
    environment: ExtendedSceneEnvironment {
        tonemapMode: SceneEnvironment.Filmic
        vignetteEnabled: true
        // ...
    }
}

注: 使用滑块等控件来试验效果参数并调整数值以达到所需的视觉效果,往往更有成效。因此,在设置一个视觉效果吸引人的高质量场景时,建议使用Qt Design Studio 等设计工具或类似于Qt Quick 3D - 场景效果示例的测试平台。

注意: SceneEnvironment 切换为 ExtendedSceneEnvironment(扩展场景环境)自动意味着至少要增加一次渲染通 程,就像在SceneEnvironment's effect list 中添加了一个只有一次渲染过程的特效一样。无论启用了多少个单独的后处理步骤,情况都是如此。(更复杂的特效可能需要一个以上的额外渲染过程)。

可用特效

以下是 ExtendedSceneEnvironment 提供的效果和相关功能概览,包括从SceneEnvironment 继承的功能。

另请参阅 SceneEnvironmentQt Quick 3D - 场景效果示例

属性文档

adjustmentBrightness : real [default: 1]

调整场景亮度。

亮度 1亮度 4

石质走廊默认亮度

石质走廊,亮度增至 4

adjustmentContrast : real [default: 1]

调整场景的对比度。

对比度 1对比度 4

石质走廊默认亮度

石质走廊,对比度增至 4

adjustmentSaturation : real [default: 1]

调整场景的饱和度。

饱和度 1饱和度 4

石质走廊默认亮度

石头走廊,饱和度提高到 4

colorAdjustmentsEnabled : bool [default: false]

启用颜色调整。

另请参阅 colorAdjustmentsEnabled。

depthOfFieldBlurAmount : real [default: 4.0]

设置对焦范围外物体的模糊程度。合理值范围为010。值为 0 时,不应用额外的模糊。

模糊量为 0模糊量为 15

无景深模糊的场景

景深模糊为 15 的场景

depthOfFieldEnabled : bool [default: false]

启用景深模糊效果。

depthOfFieldFocusDistance : real [default: 600]

设置对焦物体与摄像机的距离。

在这里,Sponza场景应用了100 的缩放比例,以便有一个合适的大范围来对视图的背面和正面进行模糊处理。下图的对焦距离为 753,对焦范围为 482。

展示景深效果的场景

depthOfFieldFocusRange : real [default: 100]

depthOfFieldFocusDistance 项目完全对焦的周围距离。然后,在远近两侧相同的距离内,焦点逐渐消失到完全模糊。

ditheringEnabled : bool [default: false]

启用抖动以减少带状伪影。

exposure : real [default: 1.0]

色调映射使用的曝光级别。

曝光为 8 的胶片色调映射曝光设置为 0.5 的胶片色调映射

曝光值为 8 的场景

曝光值为 0.5 的场景

fxaaEnabled : bool [default: false]

启用快速近似抗锯齿 (FXAA)。

禁用 FXAA启用 FXAA

没有抗锯齿的石质走廊

具有快速近似抗锯齿功能的石质走廊

glowBlendMode : int [default: ExtendedSceneEnvironment.GlowBlendMode.SoftLight]

辉光效果的混合模式。

可用的模式有

Additive 通常推荐用于可见天空或太阳的室外场景,而默认的SoftLight 可能更适合室内环境。

Replace 而默认的 则更适合室内环境。实际上,在设置辉光/彩虹效果参数时,这对实验和故障排除很有用。

混合模式示例
禁用辉光

无发光效果的石质走廊

添加

采用辉光叠加混合模式的场景

屏幕

采用辉光屏混合模式的场景

柔光

使用柔光混合模式为石质走廊增添光彩

替换

使用辉光替换混合模式的场景

glowBloom : real [default: 0]

设置应用于发光效果的绽放量。预期值为01

glowHDRMinimumValue,glowHDRMaximumValue,glowHDRScale, 和 glowBloom 的值共同控制着由辉光/绽放效果产生的luminance feedback 量。

在实际操作中,glowStrengthglowIntensity 和 glowBloom 的值通常会一起调整,以达到所需的效果。

例如,在启用了四个发光级别、强度为 1.5 和强度为 1 的情况下,将

glowBloom 设置为 0glowBloom 设置为 0.5

石质走廊,发光度设置为 0

石质走廊,光辉度设置为 0.5

glowEnabled : bool [default: false]

启用发光效果。当glowBloom 的值大于 0 时,它还可以提供发光效果。

glowHDRMaximumValue : real [default: 12.0]

在高动态范围内设置辉光的最大亮度。数值范围为0256

glowHDRMinimumValue 、glowHDRMaximumValue、glowHDRScaleglowBloom 的值共同控制着发光/绽放效果产生的luminance feedback 量。

glowHDRMinimumValue : real [default: 1.0]

在高动态范围内设置辉光的最小亮度。预期值范围为04

glowHDRMinimumValue、glowHDRMaximumValueglowHDRScaleglowBloom 值可共同控制由辉光/绽放效果产生的luminance feedback 量。

glowHDRScale : real [default: 2.0]

HDR 辉光的出血比例。预期值范围为08

glowHDRMinimumValueglowHDRMaximumValue 、glowHDRScale 和glowBloom 的值共同控制着由辉光/发光效果产生的luminance feedback 量。

glowIntensity : real [default: 1]

辉光强度。预期值范围为08

强度实际上是累积辉光颜色(包括所有级别)的比例因子(乘数)。

在实际操作中,glowStrength 、glowIntensity 和glowBloom 的值通常会一起调整,以达到预期效果。

例如,glowStrength 为 1.0,glowBloom 为 0.25:

glowIntensity 为 0.25glowIntensity 为 1.25

发光强度为 0.25 的石头庭院

发光强度为 1.25 的石头庭院

glowLevel : int [default: 1]

设置哪种模糊效果会应用于发光效果。共有 7 个级别可供选择。

不设置任何级别意味着辉光效果没有视觉效果。

例如,要启用第一级第六级辉光效果,我们只需将这两个枚举的值相加即可:

glowLevel = (ExtendedSceneEnvironment.GlowLevel.One | ExtendedSceneEnvironment.GlowLevel.Six)
glowLevel 值示例

石砌庭院,1 层发光

一 | 二

石砌庭院,1 层和 2 层熠熠生辉

一 | 二 | 三

石砌庭院,1、2、3 层熠熠生辉

一 | 二 | 三 | 四

显示 1、2、3 和 4 级发光的场景

glowQualityHigh : bool [default: false]

在降采样时增加辉光使用的样本,以提高辉光效果的质量。

注意: 启用此功能需要在渲染质量和性能之间进行权衡。请考虑是否可以使用dithering 代替。

glowStrength : real [default: 1]

发光强度。可接受的值为02

强度实际上是一个按级别应用的比例系数(乘数)。这意味着glowLevel 中启用的级别越多,glowStrength 越大,效果就越明显。

在实践中,glowStrength、glowIntensityglowBloom 的值通常会一起调整,以达到所需的效果。

例如,glowIntensity 为 1.0,glowBloom 为 0.25,并启用前四级:

glowStrength 为 0.5glowStrength 为 1.5

发光强度为 0.5 的场景

发光强度为 1.5 的场景

glowUseBicubicUpscale : bool [default: false]

减少光晕效果中的混叠伪影和盒状效果。

注意: 使用双立方向上缩放会影响性能。请考虑是否可以使用dithering 代替。

lensFlareApplyDirtTexture : bool [default: false]

设置是否为镜头耀斑应用污垢纹理。

禁用脏污纹理默认启用脏污纹理

石雕庭院,干净的镜头光晕

石头庭院,镜头光晕显示泥土纹理

另请参阅 lensFlareLensDirtTexture

lensFlareApplyStarburstTexture : bool [default: false]

设置是否为镜头耀斑应用星爆纹理。

禁用星爆纹理启用默认星芒纹理

石头庭院,有镜头耀斑,无星光

石头庭院,镜头炫光显示星光图案

另请参阅 lensFlareLensStarburstTexture

lensFlareBloomBias : real [default: 0.95]

设置镜头耀斑开始的水平。

偏置值从高动态范围色彩值中减去,结果箝位为 0。这意味着,根据场景的不同,有时可能需要将偏置值设置得很低,例如低于 1,才能使镜头耀斑明显。因此默认值为 0.95。而当色彩范围较大时,设置较大的值可能更合理。

偏差为 0.81偏差为 0.31

带有微妙镜头光晕的石头庭院,偏差 0.81

石雕庭院,镜头耀斑明显,偏差 0.31

lensFlareBloomScale : real [default: 10]

设置镜头耀斑绽放效果的比例。预期比例值范围为020

在实际应用中,这将作为减去lensFlareBloomBias 的零钳位色彩值的乘数。

刻度 2,偏置 0.81刻度 20,偏置 0.81

带镜头光斑的石质走廊比例 2

带镜头光斑的石质走廊 20

lensFlareBlurAmount : real [default: 3]

设置应用于镜头耀斑的模糊量。范围为050

模糊量设置为 0模糊量设置为 30

石砌庭院,镜头眩光锐利

石雕庭院,模糊的镜头光晕

lensFlareCameraDirection : vector3d [default: Qt.vector3d(0, 0, -1)]

设置场景中摄像机的方向。

lensFlareDistortion : real [default: 5]

设置镜头耀斑中的色差量。预期值范围为020

失真设置为 0失真设置为 15

带镜头眩光的石头庭院,无色差

石雕庭院,镜头眩光显示色差

lensFlareEnabled : bool [default: false]

启用镜头炫光效果。

启用后,第一个要调整的属性通常是lensFlareBloomBias

lensFlareGhostCount : int [default: 4]

设置镜头炫光重影的数量。预期值为020

鬼影数为 2鬼影数为 16

带有 2 个镜头耀斑鬼影的石头庭院

带有 16 个镜头耀斑鬼影的石头庭院

lensFlareGhostDispersal : real [default: 0.5]

设置镜头耀斑重影之间的距离。预期值介于05 之间。该值应大于 0。

鬼影分散度为 0.25鬼影分散度为 0.90

石雕庭院中的近距镜头炫光鬼影

石雕庭院中的大间距镜头耀斑鬼影

lensFlareHaloWidth : real [default: 0.25]

设置镜头耀斑光晕的大小。范围为01

lensFlareLensColorTexture : Texture

用于炫光透镜颜色的渐变图像。

默认情况下使用内置的 256x256 纹理:

从黄色到粉红色再到洋红色的水平渐变色

lensFlareLensDirtTexture : Texture

用于模拟镜头缺陷的图像。

只有启用lensFlareApplyDirtTexture 时才会产生效果。

默认情况下使用内置的脏污纹理:

灰度纹理,深色背景上有零星亮点

lensFlareLensStarburstTexture : Texture

噪点图像,用于增强镜头耀斑的星芒效果。只有启用lensFlareApplyStarburstTexture 时才会产生效果。

默认情况下使用内置的噪点纹理:

具有不规则明暗图案的灰度噪点纹理

lensFlareStretchToAspect : real [default: 0.5 [0, 1]]

设置镜头耀斑光晕圆度修正系数。

lutEnabled : bool [default: false]

使用查找表(LUT)进行调色。查找表以纹理的形式给出。

lutFilterAlpha : real [default: 1]

设置与场景混合的调色量。该值应介于01 之间。

lutSize : real [default: 16]

设置 LUT 纹理的大小。纹理的尺寸应为

width = lutSize * lutSizeheight = lutSize

lutTexture : Texture

查找纹理的来源。如果没有设置纹理,则会使用内置的标识表。

下图是一个尺寸为 256x16 的纹理示例,与默认的lutSize 16 相匹配。

水平梯度条显示用于反转的 LUT 颜色映射

效果图

使用 LUT 转换色彩的石质走廊

sharpnessAmount : real [default: 0.0]

设置锐化量。有效值从0.0 (关闭)到1.0 (完全)。

胶片色调映射,锐度设为 0胶片色调映射,锐度设为 1

石质走廊,清晰度设为 0

石质走廊,清晰度设为 1

ssgiBufferSizeFactor : real [default: 0.5, since 6.11]

控制 SSGI 特效所使用的色彩缓冲区大小。如果使用与输入和输出尺寸(即View3D 的像素尺寸)相匹配的渲染目标来执行所有操作,可能会导致成本过高,许多 GPU 和设备实际上都无法承受。因此,SSGI 效果会缩小中间纹理的尺寸。默认值为 0.5,即输入和输出纹理大小的一半。将值增大到 1 会提高结果的质量,但代价是 GPU 负载会大幅增加。

此属性在 Qt 6.11 中引入。

ssgiEnabled : bool [default: false, since 6.11]

启用屏幕空间全局照明。该效果可为场景添加环境遮蔽和间接光源,从而增强真实感。

禁用 SSGI启用 SSGI

没有屏幕空间全局照明的中世纪大厅

启用屏幕空间全局照明的中世纪大厅

此属性在 Qt 6.11 中引入。

另请参阅 Qt Quick 3D - SSGI Lightmap 示例

ssgiHitThickness : real [default: 0.5, since 6.11]

配置全局光照算法。

建议范围为 0.001 至 4.0。

此属性在 Qt 6.11 中引入。

ssgiIndirectLightBoost : real [default: 4.0, since 6.11]

间接光结果的乘数。增加该值会使间接光的作用更加突出。建议范围为 1 至 100。适当的值始终取决于场景及其照明方式。

此属性在 Qt 6.11 中引入。

ssgiIndirectLightEnabled : bool [default: true, since 6.11]

控制结果中是否包含间接光,或仅包含环境光遮挡。默认情况下两者都启用。

将值设为 false 可以直接替代SceneEnvironmentambient occlusion 。SSGI 提供的 AO 结果预计质量较高,几乎不需要调整。但这样做的代价是可能会增加 GPU 负载。

禁用 SSGI仅 AO 的 SSGI

无环境闭塞的狮子雕塑

采用 SSGI 环境闭塞技术的狮子雕塑

此属性在 Qt 6.11 中引入。

ssgiSampleCount : int [default: 4, since 6.11]

配置全局光照算法。样本数越多,效果越好,但会增加 GPU 负载。

建议范围为 1 至 16。

此属性在 Qt 6.11 中引入。

ssgiSampleRadius : real [default: 0.1, since 6.11]

配置全局光照算法。

建议范围为 0.001 至 4.0。

此属性在 Qt 6.11 中引入。

ssgiSimulatedBounceEnabled : bool [default: false, since 6.11]

控制是否通过对上一帧的纹理进行采样来模拟额外的光线反弹。

此属性在 Qt 6.11 中引入。

ssgiSimulatedBounceFactor : real [default: 0.5, since 6.11]

模拟反弹计算结果的乘数。只有当ssgiSimulatedBounceEnabledtrue 时才会产生影响。该值可能需要与ssgiIndirectLightBoost 一起调整。根据场景和照明方式的不同,这些属性的较高值可能会导致间接光贡献过于夸张,甚至导致反馈循环,即间接光在帧间过度增长。

此属性在 Qt 6.11 中引入。

ssgiSliceCount : int [default: 4, since 6.11]

配置全局光照算法。

建议范围为 1 至 8。

此属性在 Qt 6.11 中引入。

ssrEnabled : bool [default: false, since 6.11]

启用屏幕空间反射,这是一种通过使用屏幕上渲染的数据来创建反射的后处理技术。

禁用 SSR启用 SSR

此属性在 Qt 6.11 中引入。

tonemapMode : enumeration [default: SceneEnvironment.TonemapModeLinear]

此属性定义在渲染前如何对颜色进行色调映射。Qt Quick 3D 中的所有渲染都是在线性色彩空间中进行的,在很多情况下会导致生成无法显示的色彩值。tonemapMode 决定了用于将颜色重新映射到可显示范围的技术。

默认值为SceneEnvironment.TonemapModeLinear

常量说明
SceneEnvironment.TonemapModeNone绕过所有色调映射。该模式在执行后期处理效果时非常有用。
SceneEnvironment.TonemapModeLinear应用线性色调映射。颜色经过伽玛校正,并以 sRGB 色彩空间返回。
SceneEnvironment.TonemapModeAces应用学院色彩编码系统色调映射。
SceneEnvironment.TonemapModeHejlDawson应用 Hejl-Dawson 色调映射。
SceneEnvironment.TonemapModeFilmic应用胶片色调映射。

注: 使用后期处理特效时,许多特效需要未调色的线性色彩数据。在这种情况下,使用SceneEnvironment.TonemapModeNone 值绕过内置色调映射非常重要。这不适用于ExtendedSceneEnvironment 的内置特效,因为这些特效会自动进行适当的色调映射。

色调映射模式示例

无色调映射的场景

线性

使用线性色调映射的场景

王牌

使用 ACES 色调映射的场景

海尔-道森

使用 Hejl-Dawson 调色板的场景

电影

电影色调映射场景

vignetteColor : color [default: "gray"]

设置渐变效果的颜色。

例如,将颜色更改为红色,如图所示,半径为 4,强度为 15:

石质走廊,红色装饰效果

vignetteEnabled : bool [default: false]

启用渐晕效果。

vignetteRadius : real [default: 0.35]

设置渐晕效果的半径。范围为05

半径 0.35半径为 5.0

石质走廊,晕影半径设为 0.35

石质走廊,晕影半径设置为 5.0

vignetteStrength : real [default: 15]

设置渐晕效果的强度。范围为015

强度为 15强度为 10

石质走廊,阴影强度设置为 15

石质走廊,阴影强度设置为 10

whitePoint : real [default: 1]

启用色调映射时白色的参考值。该值必须大于 0。

注: 使用SceneEnvironment.TonemapModeLinear 时,此值将被忽略。

胶片色调映射,白点设置为 0.1胶片色调映射,白点设置为 1

石质走廊,亮膜色调映射,白点 0.1

石质走廊,深色胶片色调映射,白点 1

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.