Class Camera

Пакет: @aspose/3d (v24.12.0)

Camera является Entity который может быть прикреплён к Node для определения точки зрения в сцене. Он поддерживает как перспективные, так и ортографические проекции, управляемые projectionType свойством. Параметры камеры сохраняются в 3D‑файле, когда сцена сохраняется в формат, поддерживающий камеры (FBX, COLLADA, glTF).

export class Camera extends Entity

ImageRenderOptions

A3DObject ← SceneObject ← Entity ← Camera

ImageRenderOptions

Добавьте перспективную камеру в сцену и настройте её фрустум.

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

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
namestring''Имя этой камеры, используемое для её идентификации в графе сцены.
projectionType`ProjectionTypestring`ProjectionType.PERSPECTIVE
nearPlanenumber0.1Расстояние от камеры до ближней плоскости отсечения. Объекты, находящиеся ближе этого значения, не рендерятся.
farPlanenumber1000.0Расстояние от камеры до дальней плоскости отсечения. Объекты, находящиеся дальше этого значения, не рендерятся.
aspectnumber1.0Соотношение ширины к высоте области просмотра камеры.
fieldOfViewnumber0.0Диагональное поле зрения в градусах (перспективная проекция).
fieldOfViewXnumber0.0Горизонтальное поле зрения в градусах.
fieldOfViewYnumber0.0Вертикальное поле зрения в градусах.
orthoHeightnumber100.0Высота объёма ортографической проекции. Имеет значение только когда projectionType это 'ORTHOGRAPHIC'.
widthnumber0.0Ширина сенсора или области просмотра, используется когда apertureMode управляет выводом угла обзора.
heightnumber0.0Высота сенсора или области просмотра.
aspectRationumber1.0Псевдоним для соотношения сторон, предоставлен для совместимости с некоторыми сценами, полученными из FBX.

ImageRenderOptions

moveForward(distance)

Перемещает камеру вперёд вдоль её направления взгляда на заданное расстояние.

moveForward(distance: number): void

ImageRenderOptions

distance number

Расстояние, на которое перемещать вперёд. Отрицательные значения перемещают камеру назад.

ImageRenderOptions

void

ImageRenderOptions

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.');

ImageRenderOptions

  • В исходном коде, Camera наследуется от Entity. Light также расширяет Camera, что означает Light объекты имеют все свойства камеры в иерархии типов; это отражает модель данных FBX, где источники света и камеры имеют общий базовый тип узла.
  • Используйте ProjectionType константы класса (ProjectionType.PERSPECTIVE, ProjectionType.ORTHOGRAPHIC) вместо строковых литералов для типобезопасности.
 Русский