Sur cette page

Camera QML Type

Définit une classe de base abstraite pour les appareils photo. En savoir plus...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

CustomCamera, FrustumCamera, OrthographicCamera, and PerspectiveCamera

Propriétés

Méthodes

Description détaillée

Une caméra définit la manière dont le contenu d'une scène 3D est projeté sur une surface 2D, telle qu'une View3D. Une scène nécessite au moins une caméra pour que son contenu puisse être visualisé.

Il est possible de positionner et de faire pivoter la caméra comme n’importe quel autre « Node » spatial de la scène. L’emplacement et l’orientation de l’« Node » déterminent où se trouve la caméra dans la scène et dans quelle direction elle est orientée. Par défaut, l’orientation de la caméra est telle que son vecteur « forward » est orienté le long de l’axe Z négatif et son vecteur « up » le long de l’axe Y positif.

Outre la position et l’orientation, le cône de vision définit quelles parties d’une scène sont visibles par la caméra et comment elles sont projetées sur la surface 2D. Les différents sous-types de caméra offrent de multiples options pour déterminer la forme du cône de vision de la caméra.

  • PerspectiveCamera fournit une caméra dotée d’un frustum de forme pyramidale, dans lequel les objets sont projetés de telle sorte que ceux qui sont les plus éloignés de la caméra apparaissent plus petits. Il s’agit du type de caméra le plus couramment utilisé, qui correspond au fonctionnement de la plupart des caméras du monde réel.
  • OrthographicCamera fournit une caméra dont les arêtes du frustum sont parallèles, ce qui fait que l'échelle perçue d'un objet n'est pas affectée par sa distance par rapport à la caméra. Les cas d'utilisation typiques de ce type de caméra sont les applications de CAO (conception assistée par ordinateur) et la cartographie.
  • FrustumCamera Il s’agit d’un type de caméra en perspective dont le cône de projection peut être librement personnalisé à l’aide des coordonnées de son intersection avec le plan proche. Cela peut s’avérer utile lorsqu’un cône de projection asymétrique est nécessaire.
  • CustomCamera Il s’agit d’un type de caméra dont la matrice de projection peut être librement personnalisée, ce qui peut s’avérer utile pour les utilisateurs avancés souhaitant calculer leur propre matrice de projection.

Pour illustrer la différence, ces captures d’écran montrent la même scène projetée respectivement par une caméra « PerspectiveCamera » et une caméra « OrthographicCamera ». Remarquez que le rectangle rouge est plus petit que le rectangle vert sur l’image rendue à l’aide de la projection en perspective.

Caméra en perspectiveCaméra orthographique

Vue en perspective de la plaque prise par une caméra

Vue orthographique de la plaque prise par une caméra

Voir également Qt Quick 3D - Exemple View3D.

Documentation sur les propriétés

frustumCullingEnabled : bool

Lorsque cette propriété est définie sur « true », les objets situés en dehors du frustum de la caméra seront supprimés, ce qui signifie qu’ils ne seront pas transmis au moteur de rendu. Par défaut, cette propriété est définie sur « false ». Pour les scènes où tous les objets, ou la plupart d’entre eux, se trouvent à l’intérieur du frustum de la caméra, le culling par frustum constitue une surcharge inutile en termes de performances. En revanche, pour les scènes complexes dont une grande partie se trouve hors du champ de vision de la caméra, l'activation du culling du frustum peut améliorer les performances.

levelOfDetailBias : real [since 6.5]

Cette propriété définit la taille que doit avoir un modèle lors de son rendu avant que les maillages de niveau de détail automatiques ne soient utilisés. Chaque maillage de niveau de détail généré contient une valeur de taille idéale correspondant à la proportion de la scène rendue que ce maillage doit représenter. Un modèle qui ne représente que quelques pixels à l'écran n'aura pas besoin de sa géométrie complète pour s'afficher correctement ; dans ce cas, un maillage de niveau de détail inférieur sera donc utilisé à la place. Cette valeur constitue un décalage par rapport à la valeur idéale : ainsi, une valeur inférieure à 1.0 exigera une taille de rendu encore plus petite avant le passage à un niveau de détail inférieur. Des valeurs supérieures à 1.0 entraîneront l’utilisation plus précoce de niveaux de détail inférieurs. Une valeur de 0.0 désactivera complètement l’utilisation des niveaux de détail.

La valeur par défaut est 1.0

Remarque : cette propriété n’aura d’effet que sur les modèles dont la géométrie contient des niveaux de détail.

Cette propriété a été introduite dans Qt 6.5.

Voir également Model::levelOfDetailBias.

lookAtNode : Node

Si cette propriété est définie sur la valeur « non-null », la rotation de cette caméra est automatiquement mise à jour afin que celle-ci reste orientée vers le nœud spécifié chaque fois que la position de la caméra dans la scène ou celle du nœud spécifié change. Par défaut, cette propriété est définie sur « null ».

Voir également lookAt.

Documentation des méthodes

vector3d lookAt(QtQuick3D::Node node)

Définit la valeur de rotation de la caméra afin qu'elle soit orientée vers node.

vector3d lookAt(vector3d scenePos)

Définit la valeur de rotation de la caméra afin qu'elle soit orientée vers scenePos.

vector3d mapFromViewport(vector3d viewportPos)

Transforme l'viewportPos e de l'espace de la fenêtre d'affichage (2D) en espace global de la scène (3D).

Les valeurs x et y de ` viewportPos ` doivent être normalisées, le coin supérieur gauche de la fenêtre d'affichage étant situé à [0, 0] et le coin inférieur droit à [1, 1]. La valeur z est interprétée comme la distance par rapport au plan de découpe proche du frustum (clipNear).

Si viewportPos ne peut pas être mappé correctement à une position dans la scène, la position [0, 0, 0] est renvoyée.

Voir également ` mapToViewport ` et ` View3D.mapTo3DScene()`.

vector3d mapToViewport(vector3d scenePos)

Transforme l'scenePos e de l'espace de scène global (3D) en espace de fenêtre d'affichage (2D).

La position renvoyée est normalisée, le coin supérieur gauche de la fenêtre d'affichage étant situé à [0, 0] et le coin inférieur droit à [1, 1]. La valeur z renvoyée correspond à la distance entre le plan de découpe proche du cône de vision (clipNear) et scenePos en coordonnées de scène. Si cette distance est négative, le point se trouve derrière la caméra.

Si scenePos ne peut pas être correctement mappé à une position dans la fenêtre d’affichage, la position [0, 0, 0] est renvoyée.

Voir également mapFromViewport() et 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.