雾 QML 类型

指定场景的雾设置。 更多...

导入语句import QtQuick3D
Qt 6.5

属性

详细描述

fog 属性设置为有效的雾对象时,将使用这些属性来配置雾的渲染。

此类型提供的简单雾由材质实现。它不是一个后期处理效果,这意味着它不涉及额外的渲染流程,处理带有 View3D 输出的纹理,而是实现在每个可渲染对象(Model 的子网格)的片段着色器中,具有 PrincipledMaterial 或着色的 CustomMaterial

雾通过以下属性进行配置

例如,以下代码片段使用默认雾参数启用了深度(但不是高度)雾:

environment: SceneEnvironment {
    backgroundMode: SceneEnvironment.Color
    clearColor: theFog.color
    fog: Fog {
        id: theFog
        enabled: true
        depthEnabled: true
    }
}

直接在行内定义雾对象不是唯一的方法,也可以通过 id 引用雾对象。由于 ExtendedSceneEnvironment 继承了其父类型 SceneEnvironment 中的所有功能,因此雾也可以与 ExtendedSceneEnvironment 一起使用。

Fog {
    id: theFog
    enabled: true
    depthEnabled: true
}
environment: ExtendedSceneEnvironment {
    fog: theFog
}

另请参阅 Qt Quick 3D - Simple Fog 示例Qt Quick 3D - 场景效果示例

属性文档

color : color

雾的颜色。默认值是 "#8099b3"

将相同场景的颜色改变,使其变得更加蓝色。

另请参阅 density


density : float

控制雾的密度,实际上这是一个0-1范围内的乘数。默认值是1.0。减小该值会降低雾的效果强度。仅当 depthEnabled 设置为true时适用。

屏幕上的视觉效果可能受许多其他设置的影响,例如来自 ExtendedSceneEnvironment 的色调映射或辉光和光晕。相同的密度值可能因启用其他效果及其配置方式的不同而给出不同的结果。

将密度设置为 0.95 的示例场景

具有密度减少到 0.15 的相同场景

另请参阅 color


depthCurve : float

默认值为1.0。

仅当 depthEnabled 设置为true时适用。

另请参阅 depthEnabled


depthEnabled : bool

控制雾是否出现在远处。默认值是false。

另请参阅 heightEnabledenableddepthNeardepthFardepthCurve


depthFar : float

从相机开始的距离。默认值是1000.0。仅当 depthEnabled 设置为true时适用。

注意: 预期整个场景(包括相机和模型)都应根据需要设置,以便可以用诸如 depthNear 和深度Far的属性定义合理的范围。不要期望在不调整变换的情况下总是可以在包含导入资产的场景中启用雾。例如,本页上的带有 Sponza 模型的示例截图是在手动对由从glTF源资产生成的玉米膏工具实例化的Sponza组件应用额外的缩放 (100, 100, 100) 之后生成的。这为通过调整 depthNear 和深度Far值获得了良好的外观。

另请参阅 depthNeardepthEnabled


depthNear : float

从相机开始的距离。默认值是10.0。仅当 depthEnabled 设置为true时适用。

例如,先查看这个场景,深度Near值较高:

减小depthNear的值会导致雾的有效范围相对于相机“靠近”,因为它现在是从离相机更近的距离开始的。

注意:场景,包括相机和模型,需要相应地设置,以便可以通过depthNear和depthFar等属性定义合理的范围。不要期望在不需要调整变换的情况下,场景中总是可以启用雾。例如,此页上的示例截图与Sponza模型一起生成,该模型是由来自glTF源资源的balsam工具生成的Sponza组件,后来手动应用了额外的缩放(100, 100, 100)。这提供了足够的Z范围,通过调整depthNear和depthFar值,可以得到良好的视觉效果。

另请参阅:depthFar和depthEnabled。


enabled : bool

控制是否将雾应用于场景。默认值为false。

如果没有将此值设置为true,那么启用深度或高度雾将不会有任何效果。

另请参阅:depthEnabled和heightEnabled。


heightCurve : float

指定高度雾的强度。默认值为1.0。只有在heightEnabled设置为true时才适用。

另请参阅:heightEnabled。


heightEnabled : bool

控制是否启用高度雾。默认值为false。

另请参阅:depthEnabled,enabled,leastIntenseY,mostIntenseY和heightCurve。


leastIntenseY : float

指定雾最弱的位置(Y坐标)。默认值为10.0。只有在heightEnabled设置为true时才适用。

注意:默认值大于mostIntenseY。只要这一点成立,雾是从上到下渲染的。当此值小于mostIntenseY时,雾将是从下到上渲染的。

注意:在Qt Quick 3D场景中,Y轴指向向上。

这里展示的是一个启用了高度雾(没有深度雾)的场景,并且leastIntenseY设置为仅在Sponza场景的底部周围扩散雾。

增加leastIntenseY的值会使雾的范围扩散得更高,因为它现在有效地从场景中更高的Y位置开始。(请记住,Y轴指向向上)

注意:与深度雾一样,预计场景将相应设置,以便可以通过leastIntenseY和mostIntenseY定义合理的Y坐标范围。不要期望在不先调整变换的情况下,场景中总是可以启用雾。例如,此页上的示例截图与Sponza模型一起生成,该模型是由来自glTF源资源的balsam工具生成的Sponza组件,后来手动应用了额外的缩放(100, 100, 100)。

另请参阅:mostIntenseY和heightEnabled。


mostIntenseY : 浮点型

指定雾气最浓的位置(Y坐标)。默认值为0。仅在heightEnabled设置为true时适用。

注意:默认值小于leastIntenseY。只要这一点成立,雾气将自上而下渲染。当此值大于leastIntenseY时,雾气将自下而上渲染。

注意:在Qt Quick 3D场景中,Y轴指向向上。

注意:与深度雾一样,预期场景已相应设置,以便通过leastIntenseY和mostIntenseY定义合理的Y坐标范围。不要期望在单独导入资产的场景中始终启用雾气,而不先调整变换。例如,此页上用Sponza模型生成的示例截图是在手动将由balsam工具从glTF源资产生成的实例化Sponza组件放大100倍(100, 100, 100)后生成的。

另见:leastIntenseYheightEnabled


transmitCurve : 浮点型

光线透射效果的强度。默认值为1.0。仅在transmitEnabled设置为true时适用。


transmitEnabled : 布尔型

控制雾气是否有光线透射效果。默认值为false。


© 2024 The Qt Company Ltd. 本文档中包含的贡献属于其各自所有者的版权。本提供的文档遵循自由软件基金会出版的GNU自由文档许可证版本1.3的条款。Qt及其相关标志是The Qt Company Ltd在芬兰以及/或世界其他国家的商标。所有其他商标都是其各自所有者的财产。