OrthographicCamera
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:
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.
OrthographicCamera::OrthographicCamera(const Parameters& params);| Parameter | Description |
|---|---|
| params | Initialization parameters for constructing the camera. |
Factories preferred
OrthographicCamera::Create() std::shared_ptr<OrthographicCamera>
Creates a shared instance of OrthographicCamera.
static std::shared_ptr<OrthographicCamera> OrthographicCamera::Create(const Parameters& params);| Parameter | Description |
|---|---|
| params | Initialization parameters for constructing the camera. |
Types
OrthographicCamera::ResizePolicy enum
Defines how the orthographic projection should adapt on window resize.
| Value | Description |
|---|---|
| PixelSpace | Projection matches framebuffer dimensions. |
| FixedVertical | Vertical extent remains constant, horizontal adjusted. |
| FixedHorizontal | Horizontal extent remains constant, vertical adjusted. |
OrthographicCamera::Parameters struct
Parameters for constructing an OrthographicCamera object.
| Parameter | Description |
|---|---|
| left float | Left clipping plane. |
| right float | Right clipping plane. |
| top float | Top clipping plane. |
| bottom float | Bottom clipping plane. |
| near float | Near clipping plane. |
| far float | Far clipping plane. |
Properties
resize_policy ResizePolicy
The current resize policy for this camera.
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.
void OrthographicCamera::Resize(int width, int height) override;| Parameter | Description |
|---|---|
| width | Viewport width in pixels. |
| height | Viewport height in pixels. |