En esta página

Camera QML Type

Define una base abstracta para Cámaras. Más...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

CustomCamera, FrustumCamera, OrthographicCamera, and PerspectiveCamera

Propiedades

Métodos

Descripción detallada

Una Cámara define cómo se proyecta el contenido de la escena 3D sobre una superficie 2D, como View3D. Una escena necesita al menos una Cámara para poder visualizar su contenido.

Es posible posicionar y rotar la Cámara como cualquier otro Node espacial en la escena. La ubicación y orientación de Node determinan dónde se encuentra la cámara en la escena y en qué dirección está orientada. La orientación por defecto de la cámara tiene su vector hacia delante apuntando a lo largo del eje Z negativo y su vector hacia arriba a lo largo del eje Y positivo.

Junto con la posición y la orientación, el frustum define qué partes de una escena son visibles para la Cámara y cómo se proyectan en la superficie 2D. Los diferentes subtipos de Cámara proporcionan múltiples opciones para determinar la forma del frustum de la Cámara.

  • PerspectiveCamera proporciona una cámara con un frustum en forma de pirámide, donde los objetos se proyectan de forma que los más alejados de la cámara parecen más pequeños. Este es el tipo de cámara más utilizado y se corresponde con el funcionamiento de la mayoría de las cámaras del mundo real.
  • OrthographicCamera proporciona una cámara en la que las líneas del frustum son paralelas, lo que hace que la escala percibida de un objeto no se vea afectada por su distancia a la cámara. Los casos de uso típicos de este tipo de cámara son las aplicaciones CAD (diseño asistido por ordenador) y la cartografía.
  • FrustumCamera es un tipo de cámara en perspectiva en la que el frustum puede personalizarse libremente mediante las coordenadas de su intersección con el plano cercano. Puede ser útil si se necesita un frustum de cámara asimétrico.
  • CustomCamera es un tipo de cámara en el que la matriz de proyección puede personalizarse libremente, y puede ser útil para usuarios avanzados que deseen calcular su propia matriz de proyección.

Para ilustrar la diferencia, estas capturas de pantalla muestran la misma escena proyectada por una PerspectiveCamera y una OrthographicCamera. Observe cómo la caja roja es más pequeña que la caja verde en la imagen renderizada utilizando la proyección en perspectiva.

Cámara perspectivaCámara ortográfica

Vista en perspectiva de la placa

Vista de la cámara ortográfica de la placa

Consulte también Qt Quick 3D - Ejemplo de View3D.

Documentación de propiedades

frustumCullingEnabled : bool

Cuando esta propiedad es true, los objetos fuera del radio de acción de la cámara serán eliminados, lo que significa que no serán pasados al renderizador. Por defecto, esta propiedad está establecida en false. Para escenas en las que todos o la mayoría de los objetos se encuentran dentro del frustum de la cámara, el culling del frustum es una sobrecarga de rendimiento innecesaria. Sin embargo, para escenas complejas en las que grandes partes se encuentran fuera del campo de visión de la cámara, activar esta opción puede mejorar el rendimiento.

levelOfDetailBias : real [since 6.5]

Esta propiedad cambia el tamaño que debe tener un modelo cuando se renderiza antes de que se utilicen las mallas automáticas de nivel de detalle. Cada malla de nivel de detalle generada contiene un valor de tamaño ideal que cada nivel debe mostrar, que es una proporción de cuánto de la escena renderizada será esa malla. Un modelo que represente sólo unos pocos píxeles en pantalla no necesitará toda la geometría para verse correctamente, por lo que en este caso se utilizará una malla de menor nivel de detalle. Este valor es un sesgo hacia el valor ideal, de forma que un valor inferior a 1.0 requerirá un tamaño de renderizado aún menor antes de cambiar a un nivel de detalle menor. Los valores superiores a 1.0 harán que se utilicen antes niveles de detalle inferiores. Un valor de 0.0 desactivará completamente el uso de niveles de detalle.

El valor por defecto es 1.0

Nota: Esta propiedad sólo tendrá efecto en Modelos con geomtrías que contengan niveles de detalle.

Esta propiedad se introdujo en Qt 6.5.

Véase también Model::levelOfDetailBias.

lookAtNode : Node

Si esta propiedad está establecida a un valor non-null, la rotación de esta cámara se actualiza automáticamente para que esta cámara siga mirando al nodo especificado siempre que cambie la posición de la escena de esta cámara o del nodo especificado. Por defecto, esta propiedad tiene el valor null.

Véase también lookAt.

Documentación del método

vector3d lookAt(QtQuick3D::Node node)

Establece el valor de rotación de la Cámara para que apunte a node.

vector3d lookAt(vector3d scenePos)

Establece el valor de rotación de la Cámara para que apunte a scenePos.

vector3d mapFromViewport(vector3d viewportPos)

Transforma viewportPos del espacio de la ventana gráfica (2D) al espacio global de la escena (3D).

Los valores x e y de viewportPos deben estar normalizados, con la parte superior izquierda de la ventana en [0, 0] y la parte inferior derecha en [1, 1]. El valor z se interpreta como la distancia desde el plano de clip cercano del frustum (clipNear).

Si viewportPos no puede asignarse con éxito a una posición en la escena, se devuelve una posición de [0, 0, 0].

Véase también mapToViewport y View3D.mapTo3DScene().

vector3d mapToViewport(vector3d scenePos)

Transforma scenePos del espacio global de la escena (3D) al espacio de la ventana gráfica (2D).

La posición devuelta está normalizada, con la parte superior izquierda de la ventana en [0, 0] y la parte inferior derecha en [1, 1]. El valor z devuelto contendrá la distancia desde el plano de clip cercano del frustum (clipNear) a scenePos en coordenadas de escena. Si la distancia es negativa, el punto está detrás de la cámara.

Si no es posible asignar scenePos a una posición de la ventana gráfica, se devolverá una posición de [0, 0, 0].

Véase también mapFromViewport() y View3D.mapFrom3DScene().

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