Class Camera
Пакет: @aspose/3d (v24.12.0)
Camera является Entity который может быть прикреплён к Node для определения точки зрения в сцене. Он поддерживает как перспективные, так и ортографические проекции, управляемые projectionType свойством. Параметры камеры сохраняются в 3D‑файле, когда сцена сохраняется в формат, поддерживающий камеры (FBX, COLLADA, glTF).
export class Camera extends EntityImageRenderOptions
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
name | string | '' | Имя этой камеры, используемое для её идентификации в графе сцены. |
projectionType | `ProjectionType | string` | ProjectionType.PERSPECTIVE |
nearPlane | number | 0.1 | Расстояние от камеры до ближней плоскости отсечения. Объекты, находящиеся ближе этого значения, не рендерятся. |
farPlane | number | 1000.0 | Расстояние от камеры до дальней плоскости отсечения. Объекты, находящиеся дальше этого значения, не рендерятся. |
aspect | number | 1.0 | Соотношение ширины к высоте области просмотра камеры. |
fieldOfView | number | 0.0 | Диагональное поле зрения в градусах (перспективная проекция). |
fieldOfViewX | number | 0.0 | Горизонтальное поле зрения в градусах. |
fieldOfViewY | number | 0.0 | Вертикальное поле зрения в градусах. |
orthoHeight | number | 100.0 | Высота объёма ортографической проекции. Имеет значение только когда projectionType это 'ORTHOGRAPHIC'. |
width | number | 0.0 | Ширина сенсора или области просмотра, используется когда apertureMode управляет выводом угла обзора. |
height | number | 0.0 | Высота сенсора или области просмотра. |
aspectRatio | number | 1.0 | Псевдоним для соотношения сторон, предоставлен для совместимости с некоторыми сценами, полученными из FBX. |
ImageRenderOptions
moveForward(distance)
Перемещает камеру вперёд вдоль её направления взгляда на заданное расстояние.
moveForward(distance: number): voidImageRenderOptions
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) вместо строковых литералов для типобезопасности.