# Camera

**Camera** **Objects** determine which part of a **Scene** is shown on the **Screen** and how.

Every **Scene** comes with a default **Player Camera** that is created when the **Scene** is created. The **Player Camera** is the **Camera** that is played when a **Scene** starts, and it can be set on the **Attributes** of the **Scene**.

**Camera** **Objects** can be handled as any other **Object** in **Incari**, they have **Transformation Attributes** with which they can be *translated* and *rotated*.

Besides the usual **Attributes**, **Camera** **Objects** have a particular set of **Attributes** that allow the user to configure the **Camera**. These are described in detail in [**Camera Attributes**](#camera-attributes).

A **Scene** can have multiple **Cameras** and they are managed in the **Logic** using the [**Camera Nodes**](#camera-nodes).

There are several features that allow the user to know how a **Camera** will show the **Scene** while working on editing said **Scene**:

* In the **Viewport**, the [**Player mode**](#player-mode) shows what the **Player Camera** will show when running the **Project**.
* [**Picture-in-Picture**](#picture-in-picture): By selecting a **Camera** in the **Scene Outliner**, the user can see at the bottom-right corner of the **Viewport** how the **Scene** looks like through that **Camera**.
* [**Look Through**](#look-through): Mode that allows the user to see in the **Viewport** what a **Camera** shows.

## Camera Attributes

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-f622c1b0485bccfd4c4134c4b5a40359b1e41cf1%2Fcamera-attributes.png?alt=media)

There are some **Attributes** that are specific for **Cameras**. These are the following:

### Angle of View

`Angle of View` determines how much of a **Scene** can be seen by the **Camera**, much like the focal length of a camera lens. Increasing the AOV will make off-camera **Objects** progressively appear in the periphery of the screen and will therefore increase the amount of perspective distortion. Conversely, lower AOV levels will show a smaller range of **Objects**, with lower perspective distortion, and are good for more orthographic views.

### Link Aspect Ratio to Screen

When this **Attribute** is enabled, the *aspect ratio* of the **Camera** is obtained from the **Screen**. If it is disabled, the `Aspect Ratio` **Attribute** can be directly edited.

### Aspect Ratio

This **Attribute** determines the *aspect ratio*. If `Link Aspect Ratio to Screen` is enabled, it is obtained from the **Screen's** **Attributes** and cannot be edited. Otherwise, it can be set at the user's discretion.

### Near / Far Clipping Plane

Clipping planes define the range that will be rendered, in relation to the position of the camera.

`Near Clipping Plane` determines the *minimum* depth that will be rendered, while `Far Clipping Plane` determines the *maximum* depth. Anything that falls outside of this range will be ignored when rendering the frame.

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-a82604f07423d3b226637b934b4d7ac8f2415924%2Fnearfarclipping.gif?alt=media)

### Render to Texture

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-0b636d942336293a6bcee4ac3a9187d8e3a418b6%2Fcameraimage320241.png?alt=media)

This **Attribute** is used to render the **Scene** from the viewpoint of the **Camera** into a texture. When enabled, the resulting texture is added to the **Asset Database** and can be used for all **Objects** which allow for textures (such as **Materials**, **Sprites**, or **Images**). It is removed again when the **Attribute** is disabled.

This **Attribute** can also be used to draw multiple **Scenes**, combine them, or bring them into another **Scene**.

## Player Mode

The **Player Mode** shows what the **Player Camera** will show once the **Scene** starts playing. To access it, simply click `Player view` on top of the **Viewport**. Then, to go back to the **Editor View**, just click on `Editor view`:

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-7c8d632028e7a7e23894e7c5640a07427644b092%2Fcameraplayermode1.gif?alt=media)

## Picture in Picture

When a **Camera** is selected in the **Scene Outliner**, an inset window appears at the bottom-right of the **Viewport** showing what the selected **Camera** shows. The **Picture-in-Picture** inset window is highlighted in the picture below:

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-5bf9f0f605fcb40df1f44eba12314b9747f5d39c%2Fcameraplayermode2.png?alt=media)

The example below shows the **Picture-in-Picture** feature throughout several **Cameras** in a **Scene**:

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-4dbaff299e8cd26f1e950ccc2395497219df21de%2Fcameraplayermode3.gif?alt=media)

## Look Through

The **Look Through** mode allows the user to see in the **Viewport** what a **Camera** shows. To use it, right-click on a **Camera** and select `Look through` from the drop-down menu. Then, to leave this mode, just click on the `Leave look through` button at the top right of the **Viewport**:

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-4b89e679a6406996d8896e7fbc8a321c8bccff13%2Fcameraplayermode4.gif?alt=media)

## Proxy

When a **Camera** is selected in the **Scene Outliner**, its **Proxy** appears in the **Viewport**, showing which part of the **Scene** the selected **Camera** will render:

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-94aee9da24fb5a111eb789e1ebccd8834fe830fb%2Fcameraplayermode5.png?alt=media)

## Camera Nodes

The [**Camera Nodes**](https://docs.incari.com/incari-studio/2024.1/toolbox/incari/camera) allow the user to manage the **Cameras** in a **Scene**. These are:

* [**Get Active Cameras**](https://docs.incari.com/incari-studio/2024.1/toolbox/incari/camera/get-active-camera)
* [**Get All Cameras**](https://docs.incari.com/incari-studio/2024.1/toolbox/incari/camera/get-all-cameras)
* [**Set Active Camera**](https://docs.incari.com/incari-studio/2024.1/toolbox/incari/camera/set-active-camera)
