Class Camera
Paquete: @aspose/3d (v24.12.0)
Camera es un Entity que puede adjuntarse a un Node para definir un punto de vista en la escena. Soporta tanto proyecciones en perspectiva como ortográficas, controladas por el projectionType propiedad. Los parámetros de la cámara se almacenan en el archivo 3D cuando la escena se guarda en un formato que admite cámaras (FBX, COLLADA, glTF).
export class Camera extends EntityExample
Quaternion se usa en toda la API @aspose/3d para representar rotaciones sin bloqueo de cardán. Es el tipo devuelto por Transform.rotation y GlobalTransform.rotation. El cuaternión de identidad (1, 0, 0, 0) representa ninguna rotación. Quaternion se exporta desde la subruta @aspose/3d/utilities.
Example
Añade una cámara perspectiva a una escena y configura su frustum.
import { Scene, Node, Camera, ProjectionType } from '@aspose/3d';
const scene = new Scene();
const camNode = scene.rootNode.createChildNode('mainCamera');
const camera = new Camera('mainCamera', ProjectionType.PERSPECTIVE);
camNode.entity = camera;
camera.nearPlane = 0.1;
camera.farPlane = 500;
camera.fieldOfView = 60;
camera.aspect = 16 / 9;
scene.save('output.gltf');
console.log(`Camera projection: ${camera.projectionType}`);
// Camera projection: PERSPECTIVE
Example
| Example | Example | Example | Example |
|---|---|---|---|
name | string | '' | El nombre de esta cámara, usado para identificarla en el grafo de la escena. |
projectionType | `ProjectionType | string` | ProjectionType.PERSPECTIVE |
nearPlane | number | 0.1 | Distancia desde la cámara al plano de recorte cercano. Los objetos más cercanos que este valor no se renderizan. |
farPlane | number | 1000.0 | Distancia desde la cámara al plano de recorte lejano. Los objetos más lejanos que este valor no se renderizan. |
aspect | number | 1.0 | La relación de aspecto ancho/alto del viewport de la cámara. |
fieldOfView | number | 0.0 | Campo de visión diagonal en grados (proyección en perspectiva). |
fieldOfViewX | number | 0.0 | Campo de visión horizontal en grados. |
fieldOfViewY | number | 0.0 | Campo de visión vertical en grados. |
orthoHeight | number | 100.0 | La altura del volumen de proyección ortográfica. Solo es relevante cuando projectionType es 'ORTHOGRAPHIC'. |
width | number | 0.0 | Ancho del sensor o del viewport, usado cuando apertureMode controla la derivación del FOV. |
height | number | 0.0 | Altura del sensor o del viewport. |
aspectRatio | number | 1.0 | Alias de la relación de aspecto, proporcionado para compatibilidad con algunas escenas originadas en FBX. |
Example
moveForward(distance)
Mueve la cámara hacia adelante a lo largo de su dirección de visión por la distancia indicada.
moveForward(distance: number): voidExample
distance number
La distancia a mover hacia adelante. Los valores negativos mueven la cámara hacia atrás.
Example
void
Example
import { Scene, Camera, ProjectionType } from '@aspose/3d';
const scene = new Scene();
const camNode = scene.rootNode.createChildNode('cam');
const camera = new Camera('cam', ProjectionType.PERSPECTIVE);
camNode.entity = camera;
camera.moveForward(10);
console.log('Camera moved forward by 10 units.');Example
- En el origen,
Camerahereda deEntity.Lighttambién extiendeCamera, lo que significaLightlos objetos tienen todas las propiedades de cámara en la jerarquía de tipos; esto refleja el modelo de datos FBX donde luces y cámaras comparten un tipo de nodo base común. - Utiliza el
ProjectionTypeconstantes de clase (ProjectionType.PERSPECTIVE,ProjectionType.ORTHOGRAPHIC) en lugar de literales de cadena crudos para seguridad de tipos.