Cameras

Overview

Cameras in CRYENGINE are represented by the CCamera structure, and represent a view into the world. The main camera needs to be set by calling ISystem::SetViewCamera at any point before UpdateBeforeFinalizeCamera,

A camera is commonly initialized with CCamera::SetFrustum, specifying resolution, field of view, near plane and the far plane, in addition to CCamera::SetMatrix being used to set the world transformation of the specified camera.

Note that camera handling is automated by the Camera Component in the default components plug-in, see Cry::DefaultComponents::CCameraComponent.

Audio Listeners

Cameras will need to maintain an audio listener in order for audio to be played at the camera origin. Keep in mind that this is automated in the Camera Component mentioned above. For more information, see Audio Listeners.

Asynchronous Camera Injection (VR)

A big problem in Virtual Reality is the latency between the user moving the tracked headset, and the rendered picture on screen. Besides rendering as fast as possible, CRYENGINE uses late-stage camera injection in order to update the camera pose as late as possible in order to avoid a mismatch between the rendered frame and the new location of the headset.

This is achieved using IHmdDevice::IAsyncCameraCallback. Note that this is handled by default in the Camera Component mentioned in the Overview above, in addition to the Room Scale Camera Component.

Conclusion

This concludes the article on Cameras, you may be interested in: