Skip to content

OrthographicCamera

Represents a camera that uses orthographic projection.

In this projection mode, an object's size in the rendered image stays constant regardless of its distance from the camera. This can be useful for rendering 2D scenes and UI elements, amongst other things.

Although multiple cameras can be added to the scene graph and inherit transformations from their parent objects, only one camera can be active at a time. The active camera is managed by the application’s runtime object:

cpp
class MyApp : public vglx::Application {
public:
  auto Configure() -> void override {}

  auto Setup() -> void override {
    SetCamera(
      vglx::OrthographicCamera::Create({
        .left = 0.0f,
        .right = 1024.0f,
        .top = 0.0f,
        .bottom = 768.0f,
        .near = 0.1f,
        .far = 100.0f
      })
    );
  }

  auto Update(float delta) -> bool override {
    return true;
  }
}

INFO

Derives from Camera and inherits all public properties and methods.

Construction

Constructors


OrthographicCamera()

Constructs an orthographic camera.

cpp
OrthographicCamera::OrthographicCamera(const Parameters& params);
ParameterDescription
paramsInitialization parameters for constructing the camera.

Factories preferred


OrthographicCamera::Create() std::shared_ptr<OrthographicCamera>

Creates a shared instance of OrthographicCamera.

cpp
static std::shared_ptr<OrthographicCamera> OrthographicCamera::Create(const Parameters& params);
ParameterDescription
paramsInitialization parameters for constructing the camera.

Types

OrthographicCamera::ResizePolicy enum

Defines how the orthographic projection should adapt on window resize.

ValueDescription
PixelSpaceProjection matches framebuffer dimensions.
FixedVerticalVertical extent remains constant, horizontal adjusted.
FixedHorizontalHorizontal extent remains constant, vertical adjusted.

OrthographicCamera::Parameters struct

Parameters for constructing an OrthographicCamera object.

ParameterDescription
left floatLeft clipping plane.
right floatRight clipping plane.
top floatTop clipping plane.
bottom floatBottom clipping plane.
near floatNear clipping plane.
far floatFar clipping plane.

Properties

resize_policy ResizePolicy

The current resize policy for this camera.

cpp
ResizePolicy resize_policy {ResizePolicy::PixelSpace};

Functions

Resize() void virtual

Updates the projection transform to match the new viewport size.

The behavior depends on the current resize policy.

cpp
void OrthographicCamera::Resize(int width, int height) override;
ParameterDescription
widthViewport width in pixels.
heightViewport height in pixels.

Released under the MIT License.