Ортографическая камера в PlayCanvas представляет собой тип камеры, который используется для создания проекций, где объекты отображаются без учета перспективы. В отличие от перспективной камеры, где объекты уменьшаются по мере удаления от наблюдателя, ортографическая камера сохраняет одинаковый размер объектов, независимо от их расстояния от камеры. Это особенно полезно в 2D играх, интерфейсах и для некоторых типов 3D графики, где важно сохранить масштабы объектов.
Отсутствие перспективы: В ортографической проекции объекты не уменьшаются с расстоянием, как в перспективной. Все объекты на одинаковом расстоянии от камеры будут выглядеть одинаково по размеру.
Точная визуализация объектов: Такая камера позволяет точно отображать размеры объектов в пространстве, что полезно для стратегий, симуляторов, а также для работы с интерфейсами и различными типами карт.
Проекция и ограничения: Ортографическая проекция имеет свои особенности в том плане, что она идеально подходит для проекции на 2D-плоскость. В 3D-пространстве это может создавать иллюзию плоских объектов, если не использовать другие методы визуализации для глубоких сцен.
В PlayCanvas, чтобы настроить ортографическую камеру, нужно создать
объект камеры и установить параметр orthographic в
true. Это можно сделать через редактор или программно с
использованием JavaScript.
var camera = new pc.Entity();
camera.addComponent('camera', {
orthographic: true,
fov: 45, // угловое поле зрения (не используется в ортографическом режиме)
nearClip: 0.1,
farClip: 1000,
rect: new pc.Vec4(0, 0, 1, 1) // область рендеринга камеры
});
Когда камера работает в ортографическом режиме, несколько параметров становятся особенно важными для управления видом сцены:
Фокусное расстояние (fov):
Нижний и верхний клиппинг (nearClip
и farClip):
Размер камеры (orthoHeight):
Пример:
camera.camera.orthoHeight = 10; // указывает высоту видимой области камерыПроекция области (rect):
Ортографическая камера отлично подходит для следующих типов приложений:
При использовании ортографической камеры стоит учитывать некоторые ограничения:
Предположим, мы создаем игру в стиле 2D-платформера, где объекты, такие как персонажи и препятствия, должны оставаться одинаковыми по размеру, независимо от их положения в пространстве. Для этого создаем камеру, которая будет отображать сцену с использованием ортографической проекции:
var camera = new pc.Entity();
camera.addComponent('camera', {
orthographic: true,
orthoHeight: 10,
nearClip: 0.1,
farClip: 1000
});
camera.setPosition(0, 5, 10); // позиционируем камеру
Этот код создаст камеру, которая будет использовать ортографическую проекцию, гарантируя, что объекты сохранят свой размер при любых изменениях их положения.
Ортографическая камера PlayCanvas является мощным инструментом для рендеринга сцен без перспективных искажений. Она особенно полезна для 2D игр, отображения карт и различных интерфейсных элементов, где важен точный масштаб объектов. Важно понимать, что ортографическая камера не создает эффекта глубины, что может ограничивать ее использование в определенных типах приложений.