[page:Object3D] → [page:Camera] →

[name]

Caméra qui utilise [link:https://en.wikipedia.org/wiki/Perspective_(graphical) perspective projection].

Ce mode de projection est fait afin d'imiter la vision humaine. C'est le mode de projection le plus communément utilisé afin d'effectuer le rendu d'une scène 3D.

Exemple de Code

const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 ); scene.add( camera );

Exemples

[example:webgl_animation_skinning_blending animation / skinning / blending ]
[example:webgl_animation_skinning_morph animation / skinning / morph ]
[example:webgl_effects_stereo effects / stereo ]
[example:webgl_interactive_cubes interactive / cubes ]
[example:webgl_loader_collada_skinning loader / collada / skinning ]

Constructeur

[name]( [param:Number fov], [param:Number aspect], [param:Number near], [param:Number far] )

fov — Champ de vision vertical du frustum de la caméra.
aspect — Ratio d'aspect du frustum de la caméra.
near — Plan near du frustum de la caméra.
far — Plan far du frustum de la caméra.

Ensemble, ces valeurs définissent le [link:https://en.wikipedia.org/wiki/Viewing_frustum viewing frustum] de la caméra.

Propriétés

Voir la classe [page:Camera] pour connaître les propriétés communes.
Notez qu'après avoir changé la grande majorité de ces propriétés vous devrez appeller [page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix] afin que les changements prennent effet.

[property:Float aspect]

Ratio d'aspect du frustum de la caméra, en général la largeur du canvas / sa hauteur. La valeur par défaut est `1` (canvas carré).

[property:Float far]

Plan far du frustum de la caméra. La valeur par défaut est `2000`.

Doit être supérieur à la valeur actuelle du plan [page:.near near].

[property:Float filmGauge]

Taille de la pellicule utilisée pour l'axe le plus grand. La valeur par défaut est 35 (millimètres). Ce paramètre n'influe pas sur la matrice de projection sauf si .filmOffset est à une valeur non-nulle

[property:Float filmOffset]

Décalage horizontal dans la même unité que `.filmGauge`. La valeur par défaut est `0`.

[property:Float focus]

Distance de l'objet utilisé pour les effets de stéréoscopie et de profondeur de champ. Ce paramètre n'influe pas sur la matrice de projection sauf si une [page:StereoCamera] est utilisée. La valeur par défaut est `10`.

[property:Float fov]

Champ de vision vertical du frustum de la caméra, du bas vers le haut de l'écran, en degrés. La valeur par défaut est `50`.

[property:Boolean isPerspectiveCamera]

Flag en lecture seul qui pemet de vérifier si un objet donné est de type [name].

[property:Float near]

Plan near du frustum de la caméra. La valeur par défaut est `0.1`.

L'intervalle valide est supérieure à 0 et inférieure à la valeur actuelle du plan [page:.far far]. Notez que, à l'inverse de l'[page:OrthographicCamera], `0` n'est pas une valeur valide pour le plan near d'une PerspectiveCamera.

[property:Object view]

Spécification du frustum ou nul. La valeur est fixée par la méthode [page:PerspectiveCamera.setViewOffset .setViewOffset] et supprimée par la méthode [page:PerspectiveCamera.clearViewOffset .clearViewOffset].

[property:number zoom]

Récupère ou renseigne le facteur de zoom de la caméra. La valeur par défaut est `1`.

Methods

Voir la classe [page:Camera] pour connaître les propriétés communes.

[method:undefined clearViewOffset]()

Retire tout décalage mis en place par la méthode [page:PerspectiveCamera.setViewOffset .setViewOffset].

[method:Float getEffectiveFOV]()

Retourne l'angle du champ de vision verticalen degrés en prenant en compte le .zoom.

[method:Float getFilmHeight]()

Retourne la hauteur de l'image dans la pellicule. Si .aspect est plus petit ou égal à un (format portrait), le résultat est égal à .filmGauge.

[method:Float getFilmWidth]()

Retourne la largeur de l'image dans la pellicule. Si .aspect est plus grand ou égal à un (format paysage), le résultat est égal à .filmGauge.

[method:Float getFocalLength]()

Retourne la distance focale du .fov actuel par rapport au .filmGauge.

[method:undefined setFocalLength]( [param:Float focalLength] )

Définis une valeur pour le champ de vision en fonction de la distance focale par rapport à la [page:PerspectiveCamera.filmGauge .filmGauge] actuelle.

Par défaut, la distance focale est spécifiée pour une caméra de 35mm (plein cadre).

[method:undefined setViewOffset]( [param:Float fullWidth], [param:Float fullHeight], [param:Float x], [param:Float y], [param:Float width], [param:Float height] )

fullWidth — largeur totale du setup multi-écrans
fullHeight — hauteur totale du setup multi-écrans
x — décalage horizontal de la sous-caméra
y — décalage vertical de la sous-caméra
width — largeur de la sous-caméra
height — hauteur de la sous-caméra

Définis un décalage dans un frustum plus grand. C'est utile pour un setup multi-écrans ou multi-machines.

Par exemple, si vous avez 3x2 écrans, que chaque écran est un 1920x1080 et les écrans sont dans une grille comme suit:

+---+---+---+
| A | B | C |
+---+---+---+
| D | E | F |
+---+---+---+
		
puis pour chaque écran vous l'appelleriez ainsi:
const w = 1920; const h = 1080; const fullWidth = w * 3; const fullHeight = h * 2; // A camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); // B camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); // C camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); // D camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); // E camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); // F camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); Notez qu'il n'y a aucune raison que les écrans aient la même taille ou qu'ils soient dans une grille.

[method:undefined updateProjectionMatrix]()

Met à jour la matrice de projection de la caméra. Doit être appelé après chaque changement de paramètres.

[method:Object toJSON]([param:Object meta])

meta -- objet contenant des metadatas comme des objets ou des textures dans des descendants des objets.
Convertis la caméra en [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format] three.js.

Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]