En esta página

Fog QML Type

Especifica los ajustes de niebla para una escena. Más...

Import Statement: import QtQuick3D
Since: Qt 6.5
Inherits:

QtObject

Propiedades

Descripción detallada

Cuando la propiedad fog de un SceneEnvironment se establece en un objeto Fog válido, las propiedades se utilizan para configurar el renderizado de la niebla.

Escena con efecto niebla

La niebla simple proporcionada por este tipo es implementada por los materiales. No es un efecto de post-procesado, lo que significa que no implica pases de render adicionales procesando la textura con la salida del View3D, sino que se implementa en el fragment shader para cada objeto renderizable (submalla de Model) con un PrincipledMaterial o sombreado CustomMaterial.

La niebla se configura mediante una serie de propiedades:

Por ejemplo, el siguiente fragmento activa la niebla de profundidad (pero no la de altura) utilizando los parámetros de niebla predeterminados:

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

En lugar de definir el objeto Niebla en línea, también es posible hacer referencia a un objeto Niebla mediante id. Y puesto que ExtendedSceneEnvironment hereda todo de su tipo padre SceneEnvironment, la niebla puede utilizarse también con ExtendedSceneEnvironment:

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

Ver también Qt Quick 3D - Ejemplo de Niebla Simple y Qt Quick 3D - Ejemplo de Efectos de Escena.

Documentación de propiedades

color : color

El color de la niebla. El valor por defecto es "#8099b3".

Escena con niebla azul ligeramente desaturada

La misma escena con el color cambiado para que sea más azulado:

Escena con niebla azul

Véase también density.

density : real

Controla la cantidad de niebla, en la práctica es un multiplicador en el rango 0-1. El valor por defecto es 1.0. Reducir el valor disminuye la fuerza del efecto de niebla. Sólo es aplicable cuando depthEnabled tiene el valor verdadero.

El efecto visual en pantalla puede verse afectado por otros ajustes de ExtendedSceneEnvironment, como el mapeado de tonos o el resplandor y el bloom. El mismo valor de densidad puede dar resultados diferentes dependiendo de qué otros efectos estén activados y cómo estén configurados.

Una escena de ejemplo con la densidad ajustada a 0.95:

Escena con una densidad de niebla del 95

La misma escena con la densidad reducida a 0.15:

Escena con una densidad de niebla del 15

Véase también color.

depthCurve : real

El valor por defecto es 1,0.

Aplicable sólo cuando depthEnabled tiene el valor true.

Véase también depthEnabled.

depthEnabled : bool

Controla si la niebla aparece en la distancia. El valor por defecto es false.

Véase también heightEnabled, enabled, depthNear, depthFar, y depthCurve.

depthFar : real

Distancia final desde la cámara. El valor por defecto es 1000.0. Aplicable sólo cuando depthEnabled está configurado como true.

Nota: Se espera que la escena, incluyendo la cámara y los modelos, estén configurados en consecuencia, para que puedan definirse rangos sensibles mediante propiedades como depthNear y depthFar. No espere que la niebla pueda activarse siempre en una escena que contenga activos importados tal cual, sin ajustar primero las transformaciones. Por ejemplo, las capturas de pantalla de ejemplo en esta página con el modelo Sponza se generan después de aplicar manualmente una escala adicional de (100, 100, 100) en el componente Sponza instanciado que fue generado por la herramienta balsam desde el activo de origen glTF. De este modo se obtuvo un rango Z suficiente para obtener buenos resultados ajustando los valores depthNear y depthFar.

Véase también depthNear y depthEnabled.

depthNear : real

Distancia inicial desde la cámara. El valor por defecto es 10.0. Aplicable sólo cuando depthEnabled está en true.

Como ejemplo, tome esta escena, primero con un valor depthNear más alto.

Escena con mayor profundidadValor de niebla cercano

Disminuyendo el valor de depthNear se consigue que la niebla "se acerque" a la cámara, ya que ahora parte de una distancia menor a la cámara:

Escena con menor profundidadValor de niebla cercano

Nota: Se espera que la escena, incluyendo la cámara y los modelos, esté configurada en consecuencia, de modo que puedan definirse rangos sensibles mediante propiedades como depthNear y depthFar. No espere que la niebla se pueda activar siempre en una escena que contenga activos importados tal cual, sin ajustar primero las transformaciones. Por ejemplo, las capturas de pantalla de ejemplo en esta página con el modelo Sponza se generan después de aplicar manualmente una escala adicional de (100, 100, 100) en el componente Sponza instanciado que fue generado por la herramienta balsam desde el activo de origen glTF. De este modo se obtuvo un rango Z suficiente para obtener buenos resultados ajustando los valores depthNear y depthFar.

Véase también depthFar y depthEnabled.

enabled : bool

Controla si se aplica niebla a la escena. El valor por defecto es false.

Activar la niebla de profundidad o de altura no tiene ningún efecto sin establecer este valor en true.

Véase también depthEnabled y heightEnabled.

heightCurve : real

Especifica la intensidad de la niebla de altura. El valor por defecto es 1.0. Sólo es aplicable cuando heightEnabled tiene el valor verdadero.

Véase también heightEnabled.

heightEnabled : bool

Controla si se activa la niebla de altura. El valor por defecto es false.

Ver también depthEnabled, enabled, leastIntenseY, mostIntenseY, y heightCurve.

leastIntenseY : real

Especifica la posición (coordenada Y) donde la niebla es menos intensa. El valor por defecto es 10.0. Aplicable sólo cuando heightEnabled es verdadero.

Nota: Por defecto el valor es mayor que mostIntenseY. Mientras esto sea cierto, la niebla se renderizará de arriba a abajo. Cuando este valor es menor que mostIntenseY, la niebla se renderiza de abajo a arriba.

Nota: El eje Y apunta hacia arriba en las escenas 3D de Qt Quick.

Aquí se muestra una escena con la niebla de altura activada (sin niebla de profundidad), y leastIntenseY ajustado a un valor para que la niebla sólo se extienda alrededor de la parte inferior de la escena Sponza.

Escena con menor valor de niebla leastIntenseY

Aumentar el valor de leastIntenseY hace que la niebla se extienda más alto ya que ahora comienza efectivamente en una posición Y más alta en la escena. (recuerde que el eje Y apunta hacia arriba)

Escena con mayor valor de niebla leastIntenseY

Nota: Al igual que con la niebla de profundidad, se espera que la escena se configure en consecuencia, de modo que los rangos de coordenadas Y sensibles puedan ser definidos por leastIntenseY y mostIntenseY. No espere que la niebla se pueda activar siempre en una escena que contenga activos importados tal cual, sin ajustar primero las transformaciones. Por ejemplo, las capturas de pantalla de ejemplo en esta página con el modelo Sponza se generan después de aplicar manualmente una escala adicional de (100, 100, 100) en el componente Sponza instanciado que fue generado por la herramienta balsam a partir del activo de origen glTF.

Véase también mostIntenseY y heightEnabled.

mostIntenseY : real

Especifica la posición (coordenada Y) donde la niebla es más intensa. El valor por defecto es 0. Aplicable sólo cuando heightEnabled está establecido en true.

Nota: Por defecto el valor es menor que leastIntenseY. Mientras esto sea cierto, la niebla se renderizará de arriba a abajo. Cuando este valor es mayor que leastIntenseY, la niebla se renderiza de abajo a arriba.

Nota: El eje Y apunta hacia arriba en las escenas 3D de Qt Quick.

Nota: Al igual que con la niebla de profundidad, se espera que la escena se configure en consecuencia, de modo que los rangos de coordenadas Y sensibles puedan ser definidos por leastIntenseY y mostIntenseY. No espere que la niebla pueda activarse siempre en una escena que contenga activos importados tal cual, sin ajustar primero las transformaciones. Por ejemplo, las capturas de pantalla de ejemplo en esta página con el modelo Sponza se generan después de aplicar manualmente una escala adicional de (100, 100, 100) en el componente Sponza instanciado que fue generado por la herramienta balsam a partir del activo de origen glTF.

Véase también leastIntenseY y heightEnabled.

transmitCurve : real

Intensidad del efecto de transmisión de luz. El valor por defecto es 1,0. Aplicable sólo cuando transmitEnabled tiene el valor verdadero.

transmitEnabled : bool

Controla si la niebla tiene un efecto de transmisión de luz. El valor por defecto es falso.

© 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.