SceneEnvironment QML Type
Permite configurar cómo se renderiza una escena. Más...
| Import Statement: | import QtQuick3D |
| Inherits: | |
| Inherited By: |
Propiedades
- antialiasingMode : enumeration
- antialiasingQuality : enumeration
- aoBias : real
- aoDistance : real
- aoDither : bool
- aoEnabled : bool
(since 6.5) - aoSampleRate : int
- aoSoftness : real
- aoStrength : real
- backgroundMode : enumeration
- clearColor : color
- debugSettings : QtQuick3D::DebugSettings
(since 6.5) - depthPrePassEnabled : bool
- depthTestEnabled : bool
- effects : List<QtQuick3D::Effect>
- fog : QtQuick3D::Fog
(since 6.5) - lightProbe : QtQuick3D::Texture
- lightmapper : Lightmapper
- oitMethod : enumeration
(since 6.11) - probeExposure : real
- probeHorizon : real
- probeOrientation : vector3d
- scissorRect : rect
(since 6.5) - skyBoxCubeMap : QtQuick3D::CubeMapTexture
(since 6.4) - skyboxBlurAmount : real
(since 6.4) - specularAAEnabled : bool
(since 6.4) - temporalAAEnabled : bool
- temporalAAMode : enumeration
(since 6.11) - temporalAAStrength : real
- tonemapMode : enumeration
(since 6.0)
Descripción detallada
SceneEnvironment define un conjunto de propiedades globales sobre cómo debe renderizarse una escena.
Nota: El módulo QtQuick3D.Helpers ofrece un tipo ExtendedSceneEnvironment que hereda de SceneEnvironment y añade una serie de efectos incorporados en la parte superior.
Para utilizar SceneEnvironment o ExtendedSceneEnvironment, asocie el environment property de un View3D con una instancia de estos tipos. El objeto puede declararse inline, por ejemplo así:
View3D { environment: SceneEnvironment { antialiasingMode: SceneEnvironment.MSAA tonemapMode: SceneEnvironment.TonemapModeFilmic backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "panoramic_hdri_background.hdr" } } }
Alternativamente, el objeto de entorno puede definirse por separado. Puede ser referenciado por uno o más objetos View3D. Un fragmento de código de ejemplo, utilizando esta vez ExtendedSceneEnvironment:
ExtendedSceneEnvironment {
id: myEnv
vignetteEnabled: true
}
View3D {
width: parent.width / 2
environment: myEnv
}
View3D {
width: parent.width / 2
x: parent.width / 2
environment: myEnv
}Características
- Ajustes de suavizado. Para una visión general de este tema, véase Anti-Aliasing Best Practices. Las propiedades relevantes son antialiasingMode, antialiasingQuality, specularAAEnabled, temporalAAEnabled, temporalAAStrength. Además, si se utiliza ExtendedSceneEnvironment, hay otro método disponible a través de fxaaEnabled.
- Oclusión ambiental en el espacio de la pantalla. Las propiedades relevantes son aoEnabled, aoStrength, aoBias, aoDistance, aoDither, aoSampleRate, aoSoftness. Tenga en cuenta que SSGI también proporciona oclusión ambiental, y a menudo dará resultados de mejor calidad, aunque posiblemente con un mayor coste de rendimiento. Evite activar la oclusión ambiental de SceneEnvironment y SSGI de ExtendedSceneEnvironment a la vez.
- Color claro, skybox, iluminación basada en imágenes. Para obtener más información sobre IBL, consulte Uso de la iluminación basada en imágenes. Las propiedades relevantes son backgroundMode, clearColor, lightProbe, probeExposure, probeHorizon, probeOrientation, skyboxBlurAmount, skyBoxCubeMap.
- Mapeado de tonos. tonemapMode configura el método de mapeado de tonos que se utiliza para convertir los valores de color de alto rango dinámico al rango 0-1 al final del canal de gráficos. ExtendedSceneEnvironment ofrece algunas propiedades adicionales, como whitePoint y sharpnessAmount que pueden utilizarse para ajustar los cálculos de mapeado de tonos.
- Ajustes del búfer de profundidad. Las propiedades relevantes son depthPrePassEnabled, depthTestEnabled.
- Efectos de postprocesado. Además de los efectos de postprocesamiento incorporados proporcionados por ExtendedSceneEnvironment, las aplicaciones pueden proporcionar sus propios efectos personalizados a través del tipo Effect. La propiedad effects es una lista de instancias de Effect.
- Depurar los ajustes de visualización, como el modo wireframe o renderizar sólo ciertas contribuciones de color para los materiales. Esto es controlado por el objeto DebugSettings referenciado desde la propiedad debugSettings. La mayoría de estos ajustes también pueden controlarse interactivamente cuando se añade un elemento DebugView a la escena.
- Ajustes de niebla. Para habilitar la niebla, establece un objeto Fog configurado apropiadamente en la propiedad fog.
- Ajustes de cocción de mapas de luz. Cuando se utilizan lightmaps pre-cocinados para algunos modelos de la escena, el objeto Lightmapper configurado en la propiedad lightmapper define los ajustes utilizados durante el proceso de cocción.
- Ajustes de tijera. Para aplicar una tijera diferente a la del viewport, establece la propiedad scissorRect.
Ver también ExtendedSceneEnvironment.
Documentación de propiedades
antialiasingMode : enumeration
Esta propiedad controla el modo de antialiasing que se aplica al renderizar la escena.
Los valores posibles son:
| Constante | Descripción |
|---|---|
SceneEnvironment.NoAA | No se aplica antialiasing. |
SceneEnvironment.SSAA | Se aplica antialiasing supermuestra. |
SceneEnvironment.MSAA | Se aplica antialiasing multimuestra. |
SceneEnvironment.ProgressiveAA | Se aplica antialiasing progresivo. |
El valor por defecto es SceneEnvironment.NoAA.
Supermuestreo
La escena se renderiza con una resolución mayor y luego se reduce a la resolución real.
Ventajas: Alta calidad. Antialiases todo el contenido de la escena y no sólo las siluetas de la geometría.
Contras: Suele ser más caro que MSAA. Aumenta el uso de memoria de vídeo. Soportado con elementos View3D con todos los renderMode excepto Inline, pero dado que la técnica implica renderizar primero a una textura, activar SSAA con un renderMode de Underlay o Overlay resultará en el uso de una textura intermedia y un pase de render que normalmente no sería necesario, lo que significa que los costes de rendimiento pueden ser más notables. Se recomienda utilizar SSAA sólo cuando el renderMode es el predeterminado Offscreen.
Muestreo múltiple
Los bordes de la geometría se supermuestrean, lo que da como resultado siluetas más suaves. Sin embargo, esta técnica no afecta a los materiales del interior de la geometría.
Ventajas: Funciona con cualquier elemento de View3D independientemente del renderMode. Buenos resultados en siluetas de geometría, donde el aliasing suele ser más notable; funciona con animaciones rápidas sin problemas. El rendimiento depende exclusivamente de las capacidades del sistema (GPU).
Contras: No ayuda con problemas de texturas o reflejos. Aumenta el uso de memoria de vídeo. Puede ser caro de usar en hardware gráfico menos potente. Puede controlarse por ventana o para elementos individuales de View3D dependiendo del renderMode. Cuando se utiliza Underlay/Overlay con un efecto aplicado o Offscreen, MSAA puede controlarse para cada elemento de View3D. Por otro lado, si se utiliza Subyacente/Superpuesto sin ningún efecto o Inline, el MSAA se controlará por ventana.
Nota: Para los elementos View3D con un renderMode distinto de Subyacente/Superpuesto con efectos o Fuera de pantalla, el multimuestreo sólo puede activarse a través del QSurfaceFormat del QQuickWindow o QQuickView. Esto afectará entonces a todo el contenido, tanto 2D como 3D, de esa ventana.
Antialiasing progresivo
Esta propiedad activa y establece el nivel de antialiasing progresivo aplicado a la escena.
Cuando todo el contenido de la escena ha dejado de moverse, la cámara se mueve muy ligeramente entre fotogramas, y el resultado de cada nuevo fotograma se mezcla con los fotogramas anteriores. Cuantos más fotogramas acumules, mejor se verá el resultado.
Ventajas: Proporciona grandes resultados cuando todo el contenido de la escena está quieto.
Contras: No tiene efecto si se está produciendo algún cambio visual. Caro debido a tener que acumular y mezclar. Aumenta el uso de memoria de vídeo.
Nota: El antialiasing progresivo no está soportado actualmente con el renderizado multivista, y no debería usarse en aplicaciones VR/AR.
Ver Anti-Aliasing Best Practices para más información sobre métodos de anti-aliasing.
antialiasingQuality : enumeration
Esta propiedad establece el nivel de antialiasing aplicado a la escena. El comportamiento depende de la propiedad antialiasingMode utilizada. Con la propiedad antialiasingMode establecida en NoAA esta propiedad no tiene efecto.
Los valores posibles son:
| Constante | Descripción |
|---|---|
SceneEnvironment.Medium | SSAA: El antialiasing utiliza 1,2x de resolución de supermuestreo. MSAA: El antialiasing utiliza 2 muestras por píxel. ProgressiveAA: El antialiasing utiliza 2 fotogramas para la imagen final. |
SceneEnvironment.High | SSAA: El antialiasing utiliza 1,5 veces la resolución de supermuestreo. MSAA: El antialiasing utiliza 4 muestras por píxel. ProgressiveAA: El antialiasing utiliza 4 fotogramas para la imagen final. |
SceneEnvironment.VeryHigh | SSAA: El antialiasing utiliza una resolución de supermuestreo de 2,0x. MSAA: El antialiasing utiliza 8 muestras por píxel. ProgressiveAA: El Antialiasing utiliza 8 fotogramas para la imagen final. |
El valor por defecto es SceneEnvironment.High
aoBias : real
Esta propiedad define una distancia de corte que impide que los objetos muestren oclusión ambiental a distancias cortas. Los valores más altos aumentan la distancia requerida entre objetos antes de que se vea oclusión ambiental.
Nota: Si observa sombras de oclusión ambiental en objetos donde no debería haber sombras, aumente ligeramente el valor para recortar los resultados cercanos.
El valor por defecto es 0,0.
aoDistance : real
Esta propiedad define aproximadamente a qué distancia se extienden las sombras de oclusión ambiental de los objetos. Las distancias mayores tienen un impacto creciente en el rendimiento.
El valor por defecto es 5.0.
En la imagen con el valor por defecto aoSoftness y el máximo aoStrength:
| aoDistance de 5 | aoDistancia de 1 |
|---|---|
|
|
Nota: Conseguir una oclusión ambiental en el espacio de pantalla visualmente atractiva depende del ajuste cuidadoso de una serie de parámetros relacionados, como aoStrength, aoSoftness, aoDistance, aoDither, aoBias, y aoSampleRate.
Véase también aoStrength y aoSoftness.
aoDither : bool
Cuando esta propiedad está activada, dispersa los bordes de las bandas de sombra de oclusión ambiental para mejorar la suavidad (a riesgo de producir a veces evidentes artefactos de patrón).
Nota: Las distancias muy grandes entre los planos de recorte de la cámara pueden causar problemas con la oclusión ambiental. Si ves bandas extrañas en tu oclusión ambiental, intenta ajustar la propiedad clipFar de tu cámara para que esté más cerca de tu contenido.
El valor por defecto es false.
Véase también PerspectiveCamera.clipFar y OrthographicCamera.clipFar.
aoEnabled : bool [since 6.5]
Activa o desactiva la oclusión ambiental.
El valor por defecto es false, lo que significa que la oclusión ambiental está desactivada.
Nota: Si aoStrength o aoDistance es 0, entonces estableciendo esta propiedad a true también establecerá esos valores apropiadamente para hacer efectiva la oclusión ambiental.
Nota: Conseguir una oclusión ambiental en el espacio de pantalla visualmente atractiva depende de ajustar cuidadosamente una serie de parámetros relacionados, como aoStrength, aoSoftness, aoDistance, aoDither, aoBias, y aoSampleRate.
Esta propiedad se introdujo en Qt 6.5.
Véase también aoStrength y aoDistance.
aoSampleRate : int
Esta propiedad define la calidad de la oclusión ambiental (más tonos de gris) a expensas del rendimiento.
El valor debe ser 2, 3 o 4. El valor por defecto es 2.
aoSoftness : real
Esta propiedad define cómo de suaves son los bordes del sombreado de oclusión ambiental.
El valor debe estar entre 0.0 y 50.0. El valor por defecto es 50.0.
En la imagen con el valor por defecto aoDistance y el máximo aoStrength:
| aoSoftness de 50 | aoSoftness de 25 |
|---|---|
|
|
Nota: Conseguir una oclusión ambiental en el espacio de pantalla visualmente atractiva depende de ajustar cuidadosamente una serie de parámetros relacionados, como aoStrength, aoSoftness, aoDistance, aoDither, aoBias, y aoSampleRate.
Véase también aoStrength y aoDistance.
aoStrength : real
Esta propiedad define la cantidad de ocultación ambiental aplicada. La ocultación ambiental es una forma de iluminación global aproximada que provoca auto-sombras no direccionales cuando los objetos están próximos entre sí. Un valor de 100 provoca sombras totalmente oscuras; valores inferiores hacen que las sombras parezcan más claras. Un valor de 0 desactiva por completo la oclusión ambiental, mejorando el rendimiento a costa del realismo visual de los objetos 3D renderizados en la escena.
Todos los valores distintos de 0 tienen el mismo impacto en el rendimiento.
El valor por defecto es 0.0. El valor máximo es 100.0.
Un valor de 0 equivale a establecer aoEnabled en false.
En la imagen, con los valores predeterminados aoSoftness y aoDistance:
| aoStrength de 0 (AO desactivado) | aoStrength de 100 | aoStrength de 50 |
|---|---|---|
|
|
|
Nota: Conseguir una oclusión ambiental en el espacio de pantalla visualmente atractiva depende de ajustar cuidadosamente una serie de parámetros relacionados, como aoStrength, aoSoftness, aoDistance, aoDither, aoBias, y aoSampleRate.
Ver también aoEnabled, aoDistance, y aoSoftness.
backgroundMode : enumeration
Esta propiedad controla si el fondo de la escena debe ser limpiado y cómo.
Nota: El borrado del buffer de color que respalda la Vista 3D no siempre ocurre: dependiendo de la propiedad renderMode el View3D puede no realizar ningún borrado por si mismo, en cuyo caso SceneEnvironment.Transparent y SceneEnvironment.Color no tienen efecto. Sólo el modo por defecto Offscreen render mode (renderizado en una textura) soporta todos los modos de borrado. Con el modo Underlay, utilice QQuickWindow::setColor() o Window.color para controlar el color de aclarado de la escena Qt Quick. SkyBox se maneja de forma diferente, ya que implica dibujar geometría real, por lo que funciona de forma idéntica en todos los modos de renderizado.
| Constante | Descripción |
|---|---|
SceneEnvironment.Transparent | La escena se limpia para ser transparente. Esto es útil para renderizar contenido 3D encima de otro elemento. Este modo no tiene efecto cuando View3D está utilizando un renderMode de Underlay o Overlay sin ningún postprocesamiento habilitado. |
SceneEnvironment.Color | La escena se limpia con el color especificado por la propiedad clearColor. Este modo no tiene efecto cuando View3D utiliza un renderMode de Underlay o Overlay sin ningún postprocesamiento habilitado. |
SceneEnvironment.SkyBox | La escena no se borrará, pero en su lugar se renderizará un SkyBox o Skydome. El SkyBox se define utilizando el mapa HDRI definido en la propiedad lightProbe. |
SceneEnvironment.SkyBoxCubeMap | La escena no se borrará, sino que se renderizará un SkyBox o Skydome. El SkyBox se define utilizando el cubemap definido en la propiedad skyBoxCubeMap. |
El valor por defecto es SceneEnvironment.Transparent
Tomemos el siguiente ejemplo. El modelo Suzanne se espera que sea pre-procesado con la herramienta balsam y proviene del repositorio glTF Sample Models.
import QtQuick import QtQuick3D import QtQuick3D.Helpers Item { width: 1280 height: 720 View3D { id: v3d anchors.fill: parent environment: ExtendedSceneEnvironment { backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" } glowEnabled: true glowStrength: 1.25 glowBloom: 0.25 glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive } DirectionalLight { } Suzanne { scale: Qt.vector3d(50, 50, 50) z: -500 } PerspectiveCamera { id: camera } WasdController { controlledObject: camera } } }
Usando iluminación basada en imagen adicional a la de DirectionalLight y también usando la textura de la sonda de luz como skybox nos da lo siguiente:

¿Qué ocurre si no hay sonda de luz?
backgroundMode: SceneEnvironment.Transparent
Aquí el fondo no lo proporciona View3D sino QQuickWindow o QQuickView que albergan la escena 2D y 3D. La iluminación se basa únicamente en el DirectionalLight.

Usando un color claro fijo:
backgroundMode: SceneEnvironment.Color clearColor: "green"

Véase también lightProbe, QQuickWindow::setColor(), Window::color, y View3D.
clearColor : color
Esta propiedad define qué color se utilizará para borrar la ventana gráfica cuando se utilice SceneEnvironment.Color para la propiedad backgroundMode.
El valor por defecto es Qt::black
Véase también backgroundMode.
debugSettings : QtQuick3D::DebugSettings [since 6.5]
Esta propiedad especifica un objeto DebugSettings que se utiliza para configurar las herramientas de depuración del renderizador. Durante la construcción, SceneEnvironment crea automáticamente un objeto DebugSettings asociado a sí mismo, por lo que normalmente no es necesario configurar un DebugSettings personalizado.
Un ejemplo de renderizado de la escena con el modo wireframe activado:

Visualización de los vectores normales de las mallas:

Visualización de la contribución de la iluminación especular:

Esta propiedad se introdujo en Qt 6.5.
Ver también DebugSettings.
depthPrePassEnabled : bool
Cuando está activado, el renderizador realiza un Z-prepass para los objetos opacos, lo que significa que los renderiza con un shader simple y la escritura de color desactivada con el fin de obtener el búfer de profundidad pre-llenado antes de emitir llamadas de dibujo para los pases de renderizado principales.
Esto puede mejorar el rendimiento dependiendo del contenido de la escena. Normalmente son las escenas con muchos objetos superpuestos y un costoso sombreado de fragmentos las que se benefician de ello. Al mismo tiempo, hay que tener en cuenta que el renderizador realiza una ordenación de adelante hacia atrás para los objetos opacos, lo que de por sí ayuda a reducir el sombreado de fragmentos innecesario, por lo que el Z-prepass no siempre aporta mejoras significativas.
En las GPU que utilizan una arquitectura de renderizado en mosaico, que es común en los sistemas móviles e integrados, se recomienda establecer este valor en false.
El valor por defecto es false.
Nota: Esta propiedad no tiene ningún efecto cuando la prueba de profundidad está desactivada.
depthTestEnabled : bool
El valor por defecto es true. Por defecto, el renderizador clasifica los objetos de la escena como opaque o como semi-transparent. Los objetos (submallas con el material asociado) de la lista opaque se renderizan en primer lugar, con la comprobación de profundidad y la escritura en profundidad activadas, lo que proporciona un Z-culling óptimo para los objetos 3D típicos que no tienen regiones semitransparentes. Los objetos de la lista semi-transparent se renderizan con la escritura en profundidad desactivada, aunque con la prueba de profundidad activada (para comprobar los objetos opacos), en orden de atrás hacia delante (ordenados según la distancia de su punto central a la cámara). Esto permite una mezcla correcta ("ver a través") para objetos 3D que implican regiones semitransparentes en su superficie, ya sea debido a la node opacity o debido a algún mapa de color o textura en el material.
Cuando esta propiedad se establece en false, el buffer Z no se escribe ni se comprueba, la prueba de profundidad se omite, y todos los objetos, incluidos los totalmente opacos, se renderizan de una sola vez, ordenados de atrás hacia delante.
Establecer esta propiedad a false debería ser raramente necesario. Puede ser útil en escenas donde se sabe que hay poco beneficio en el enfoque de dos rondas, ya sea porque hay muy pocos objetos opacos, o porque están transformados de tal manera que una sola pasada ordenada de atrás hacia adelante tiene un mejor rendimiento.
Nota: Establecer esta propiedad en false puede causar errores de renderizado en ciertas escenas. Además, algunas funciones, como las sombras, la oclusión ambiental, SCREEN_TEXTURE y DEPTH_TEXTURE en materiales y efectos personalizados, no se comportarán correctamente si no se activa el uso del búfer de profundidad.
Nota: Esta bandera no tiene control sobre la presencia de un búfer de profundidad o depth-stencil. Tales búferes pueden seguir siendo asignados incluso cuando esto se establece en false.
effects : List<QtQuick3D::Effect>
Esta propiedad contiene una lista de efectos de post-procesado que se aplicarán a toda la vista. El resultado de cada efecto se transmite al siguiente, por lo que el orden es significativo.
Nota: Por razones técnicas, añadir el mismo nodo Effect varias veces a la lista no está soportado y dará resultados inesperados.
fog : QtQuick3D::Fog [since 6.5]
Cuando esta propiedad se establece en un objeto Fog válido, se utiliza para configurar el soporte de niebla integrado en el renderizador.
El valor por defecto es null, lo que significa que no hay niebla. Esto equivale a establecer un objeto Fog con enabled en false.

Esta propiedad se introdujo en Qt 6.5.
Véase también Fog.
lightProbe : QtQuick3D::Texture
Esta propiedad define una imagen utilizada para iluminar la escena, ya sea en lugar de, o además de las luces estándar.
La imagen es preferiblemente una imagen de alto rango dinámico o un cubemap pregenerado. La pregeneración proporciona importantes mejoras de rendimiento en tiempo de ejecución, ya que no se gasta tiempo en filtrar y generar mipmaps. Si la fuente es una imagen .hdr o de otro tipo, el preprocesamiento basado en la GPU se realiza en tiempo de ejecución tras cargar el archivo de imagen, lo que puede llevar mucho tiempo, sobre todo en hardware embebido y móvil. Por lo tanto, se recomienda encarecidamente que las aplicaciones preprocesen las imágenes .hdr como muy tarde en tiempo de compilación, tal y como se describe aquí.
Nota: El uso de una textura con sourceItem no es compatible con esta propiedad. El prefiltrado de todos los niveles de mip para el contenido dinámico de Qt Quick no suele ser razonable en la práctica debido a las implicaciones de rendimiento.
Para obtener más información sobre la iluminación basada en imágenes, consulte Uso de la iluminación basada en imágenes.
Nota: La textura de la sonda de luz, cuando la propiedad se establece en una Textura válida, se utiliza para la iluminación independientemente de backgroundMode. Sin embargo, cuando backgroundMode se establece en SceneEnvironment.SkyBox, la textura también se utiliza para renderizar el fondo de la escena como un skybox.
Los ejemplos de abajo fueron generados variando el backgroundMode en el entorno de la siguiente escena. La escena no tiene DirectionLight, PointLight, o SpotLight. Toda la iluminación se basa en la imagen panorámica HDRI.
import QtQuick import QtQuick3D import QtQuick3D.Helpers Item { width: 1280 height: 720 View3D { id: v3d anchors.fill: parent environment: ExtendedSceneEnvironment { backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" } tonemapMode: SceneEnvironment.TonemapModeFilmic sharpnessAmount: 0.4 glowEnabled: true glowStrength: 1.25 glowBloom: 0.25 glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive } Node { scale: Qt.vector3d(100, 100, 100) Sponza { } Suzanne { y: 1 scale: Qt.vector3d(0.5, 0.5, 0.5) eulerRotation.y: -90 } } PerspectiveCamera { id: camera y: 100 } WasdController { controlledObject: camera } } }
Resultados con el entorno anterior:


Cambiando el backgroundMode a SceneEnvironment.Transparent nos daría:


Aquí la iluminación de la escena 3D es la misma que antes, es decir, los materiales utilizan la sonda de luz en los cálculos de iluminación de la misma forma que antes, pero no hay skybox renderizado. El fondo es blanco ya que ese es el color claro por defecto del QQuickWindow que aloja la escena 2D y 3D.
Es válido devolver el valor de la propiedad lightProbe al valor por defecto null. Esto desasigna la textura previamente asociada. Por ejemplo, usemos la tecla Supr para alternar dinámicamente entre iluminación basada en imagen con un skybox, y sin iluminación basada en imagen con un color claro fijo para el fondo:
environment: ExtendedSceneEnvironment {
id: env
backgroundMode: SceneEnvironment.SkyBox
lightProbe: iblTex
tonemapMode: SceneEnvironment.TonemapModeFilmic
sharpnessAmount: 0.4
glowEnabled: true
glowStrength: 1.25
glowBloom: 0.25
glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive
}
Texture {
id: iblTex
source: "00455_OpenfootageNET_field_low.hdr"
}
focus: true
Keys.onDeletePressed: {
if (env.backgroundMode == SceneEnvironment.SkyBox) {
env.backgroundMode = SceneEnvironment.Color;
env.clearColor = "green";
env.lightProbe = null;
} else {
env.backgroundMode = SceneEnvironment.SkyBox;
env.lightProbe = iblTex;
}
}Al pulsar Supr se obtiene el siguiente resultado. Recuerde que la escena utilizada aquí no tiene luces por lo que todos los modelos 3D aparecen completamente negros.


Mientras lightProbe se utiliza comúnmente en combinación con instancias de Textura que obtienen sus datos de un archivo de imagen (típicamente .hdr o .ktx), también puede tener sentido asociarlo con una Textura que utiliza en memoria, procedurally generated image data. Un buen ejemplo de esto es una Textura donde los datos de la imagen son generados por ProceduralSkyTextureData desde el módulo QtQuick3D.Helpers:
backgroundMode: SceneEnvironment.SkyBox
lightProbe: Texture {
textureData: ProceduralSkyTextureData {
}
}Esto nos da una textura HDR skybox generada proceduralmente que ahora se utiliza tanto como skybox como para la iluminación basada en imágenes:

Ver también backgroundMode, Using Image-Based Lighting, Pre-generating IBL cubemap, probeExposure, probeHorizon, probeOrientation, y ProceduralSkyTextureData.
lightmapper : Lightmapper
Cuando esta propiedad se establece a un objeto Lightmapper válido, los ajustes especificados por el objeto se tendrán en cuenta al bakear lightmaps.
El valor por defecto es null, lo que significa que se utilizarán los valores por defecto para todos los ajustes relacionados con el baking.
Para más información sobre cómo bakear lightmaps, consulte la documentación de Lightmapper.
Cuando los lightmaps no son relevantes para una aplicación y la iluminación bakeada nunca se genera, la propiedad y el objeto asociado no sirven para nada en la práctica.
Véase también Model::usedInBakedLighting, Model::bakedLightmap, Light::bakeMode, y Lightmapper.
oitMethod : enumeration [since 6.11]
Esta propiedad contiene el método de Transparencia Independiente del Orden. Establecer esta propiedad a un método OIT válido hace que el renderizador renderice los píxeles transparentes en el orden de profundidad correcto.
Los valores posibles son:
| Constante | Descripción |
|---|---|
SceneEnvironment.OITNone | La OIT está desactivada. |
SceneEnvironment.OITWeightedBlended | Aproxima la transparencia independiente del orden. |
SceneEnvironment.OITLinkedList | Transparencia independiente del orden exacta. |
El valor predeterminado es None y la transparencia independiente del orden está desactivada.
Mezclaponderada
Es una aproximación a la transparencia independiente del orden. Los fragmentos transparentes se renderizan en un búfer fuera de la pantalla mientras se aplica una ponderación a cada fragmento en función de su distancia a la cámara. A continuación, este búfer se mezcla con el búfer de fondo tras eliminar la ponderación de cada píxel. Este método no sigue la regla de composición fuente-sobre-fuente para todos los fragmentos y el resultado es diferente del resultado correcto, sin embargo este método funciona también en hardware antiguo y es más rápido que los otros métodos más rigurosos.
Listaenlazada
Se trata de una transparencia precisa independiente del orden. Los fragmentos transparentes se renderizan en una lista enlazada en la pasada de renderizado y se ordenan por su profundidad y se mezclan en la pasada de composición.
Nota: OIT puede no funcionar con MSAA en dispositivos con GLES 3.1 o inferior. Se recomienda no utilizar MSAA si se desea utilizar OIT en dichos dispositivos.
Nota: La transparencia independiente del orden sólo es aplicable al modo de fusión fuente-sobre. Si la escena contiene objetos con otros modos de mezcla, OIT se desactiva.
Esta propiedad se introdujo en Qt 6.11.
probeExposure : real
Esta propiedad modifica la cantidad de luz emitida por la sonda de luz. Parte del mapeado tonal es el mapeado de exposición, y esta propiedad ajusta cómo se mapean tonalmente los valores de luz en las sondas de luz.
Por defecto la exposición es 1.0
Nota: Esta propiedad no tiene efecto cuando tonemapMode está ajustada a SceneEnvironment.TonemapModeNone.
Ver también lightProbe, probeHorizon, y probeOrientation.
probeHorizon : real
Esta propiedad, cuando se define con valores crecientes, añade oscuridad (negro) a la mitad inferior del entorno, forzando a que la iluminación provenga predominantemente de la parte superior de la imagen (y eliminando reflejos específicos de la mitad inferior). Esta propiedad es útil para dar cuenta de un plano de tierra que tendría el efecto de oscurecer la reflexión de la sonda de luz desde el suelo. Esto es necesario porque las contribuciones de la sonda de luz proceden directamente de la imagen sin tener en cuenta el contenido de la escena.
El rango de valores esperado para la propiedad probeHorizon está entre 0,0 y 1,0. Cualquier valor fuera de este rango se ajustará al rango esperado.
Por defecto, probeHorizon se establece en 0,0, lo que significa que toda la sonda de luz se utiliza sin ajuste.
Nota: La propiedad probeHorizon sólo afecta a la iluminación de los materiales, y no tiene efecto en el renderizado de la caja del cielo.
Ver también lightProbe, probeExposure, y probeOrientation.
probeOrientation : vector3d
Esta propiedad define la orientación de la sonda luminosa. La orientación se define en términos de ángulos euler en grados sobre los ejes x, y, y z.
Nota: Este valor aumenta la forma en que se muestrea la textura lightProbe en combinación con cualquier rotación de la textura y los desplazamientos establecidos en la textura lightProbe.
Ver también lightProbe, probeHorizon, y probeExposure.
scissorRect : rect [since 6.5]
Esta propiedad define un rectángulo de tijera en coordenadas de vista, con la esquina superior izquierda en [0, 0].
Esta propiedad se introdujo en Qt 6.5.
skyBoxCubeMap : QtQuick3D::CubeMapTexture [since 6.4]
Esta propiedad define un cubemap que se utilizará como skybox cuando el modo de fondo sea SkyBoxCubeMap.
Esta propiedad se introdujo en Qt 6.4.
skyboxBlurAmount : real [since 6.4]
Esta propiedad determina cuánto debe desenfocarse el skybox cuando se utiliza SceneEnvironment.SkyBox para la propiedad backgroundMode. El valor por defecto es 0.0 lo que significa que no hay desenfoque.
Los valores aceptables oscilan entre 0.0 y 1.0, todos los demás valores se ajustarán a este rango.
Esta propiedad se introdujo en Qt 6.4.
specularAAEnabled : bool [since 6.4]
Cuando esta propiedad está activada, el aliasing especular será mitigado. El aliasing especular es a menudo visible en forma de puntos brillantes, posiblemente parpadeando al mover la cámara.
El valor por defecto es false.
| AA especular desactivado | AA especular activado |
|---|---|
|
|
Esta propiedad se introdujo en Qt 6.4.
temporalAAEnabled : bool [default: false]
Cuando esta propiedad está activada se utilizará el antialiasing temporal.
La cámara se mueve ligeramente entre fotogramas, y el resultado de cada nuevo fotograma se mezcla con el fotograma anterior.
Nota: El antialiasing temporal no tiene efecto cuando antialiasingMode es MSAA.
Nota: Cuando se utiliza ProgressiveAA, el AA temporal se aplica durante la animación de la escena. Una vez que la escena se vuelve estática, ProgressiveAA toma el control - pero sólo cuando temporalAAMode es SceneEnvironment.TAADefault. En otras palabras: ProgressiveAA no tiene efecto cuando temporalAAMode está configurado como SceneEnvironment.TAAMotionVector.
Ventajas: Debido al movimiento de la cámara, encuentra detalles reales que de otro modo se perderían; bajo impacto en el rendimiento.
Contras: Los objetos que se mueven rápidamente provocan ghosting en un fotograma.
Nota: El antialiasing temporal no está soportado actualmente con el renderizado multivista, y no debería usarse en aplicaciones VR/AR.
temporalAAMode : enumeration [since 6.11]
Controla el modo de antialiasing temporal. El AA temporal reduce el parpadeo y el aliasing mezclando la información entre varios fotogramas.
| Constante | Descripción |
|---|---|
SceneEnvironment.TAADefault | Mezcla los fotogramas actuales y anteriores para un filtrado temporal básico. |
SceneEnvironment.TAAMotionVector | Utiliza vectores de movimiento para rastrear el movimiento de los píxeles entre fotogramas, lo que proporciona una calidad superior a las escenas animadas. |
El valor predeterminado es SceneEnvironment.TAADefault.
Nota: El AA temporal puede causar artefactos fantasma con objetos en rápido movimiento o movimientos rápidos de cámara.
Nota: Funciona mejor con frecuencias de cuadro constantes. Las variaciones en la velocidad de fotogramas reducen la efectividad.
Esta propiedad se introdujo en Qt 6.11.
temporalAAStrength : real [default: 0.3]
Esta propiedad modifica la cantidad de movimiento temporal (antialiasing). Sólo tiene efecto cuando la propiedad temporalAAEnabled es verdadera y la propiedad temporalAAMode es SceneEnvironment.TAADefault.
Véase también temporalAAEnabled.
tonemapMode : enumeration [since 6.0]
Esta propiedad define cómo se asignan los tonos a los colores antes del renderizado. Todo el renderizado en Qt Quick 3D se realiza en espacio de color lineal y en muchos casos puede llevar a generar valores de color que no son visualizables. El tonemapMode determina la técnica que se utiliza para reasignar los colores a un rango visualizable.
El valor por defecto es SceneEnvironment.TonemapModeLinear
| Constante | Descripción |
|---|---|
SceneEnvironment.TonemapModeNone | Se omite todo el mapeado de tonos. Este modo es útil cuando se realizan efectos de postprocesado. |
SceneEnvironment.TonemapModeLinear | Se aplica el mapeado tonal lineal. Los colores se corrigen gamma y se devuelven en el espacio de color sRGB. |
SceneEnvironment.TonemapModeAces | Se aplica el mapeado tonal Academy Color Encoding System. |
SceneEnvironment.TonemapModeHejlDawson | Se aplica el mapeado tonal Hejl-Dawson. |
SceneEnvironment.TonemapModeFilmic | Se aplica el mapeado tonal fílmico. |
Consulte ExtendedSceneEnvironment para ver un ejemplo de estos modos diferentes.
Nota: Cuando se utilizan efectos de post-procesado, la mayoría de los efectos esperan datos de color lineales sin mapeado tonal. Con los efectos personalizados proporcionados por la aplicación e implementados a través del tipo Effect, es importante saber que a partir de Qt 6.5 los efectos pueden asumir con seguridad que trabajan con datos de color lineales, y el mapeado tonal se realiza automáticamente en la salida del último efecto de la cadena. Si es necesario personalizar el mapeado de tonos por completo, considere la posibilidad de configurar el valor SceneEnvironment.TonemapModeNone para desactivar el mapeado de tonos integrado y, en su lugar, realizar los ajustes apropiados en el valor de color del último efecto de la cadena. Esto no se aplica a los efectos incorporados de ExtendedSceneEnvironment, ya que éstos se encargan automáticamente de realizar el mapeado tonal adecuado independientemente de la combinación de efectos incorporados que estén activados en el entorno.
Esta propiedad se introdujo en Qt 6.0.
© 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.








