What is virtual camera control?

In a computer graphics application, such as a videogame or a scientific visualization, the user experiences the virtual world through the lenses of a virtual camera. Virtual camera control (or simply camera control) is a branch of computer graphics which deals with positioning and moving a virtual camera within a virtual environment, and also encompasses other aspects such as shot editing and virtual cinematography. Since the quantity and quality of information perceived by the user is dependent on the way the camera is handled by the system, camera control is one of the fundamental aspects of the user’s interaction with the virtual world.

In its most common form, a virtual camera is a geometric object which can be defined through seven parameters: position (x, y and z), aiming (through the ψ, θ and φ angles), and field of view (γ, which represents the zoom).

A virtual camera

Obviously, for a user which is attending to her tasks within the virtual world, controlling all the seven degrees of freedom of a virtual camera is nearly impossible. Moreover, controlling a virtual camera so that the final result is aesthetically pleasing is non trivial because, at a low level, one is always controlling geometric parameters which have no direct relation to cinematographic rules or artistic principles. For this reason, computer graphics researchers and game developers have been proposing, for over 20 years, camera control approaches addressing problems such as functionality and aesthetics. These approaches can be roughly subdivided in three categories.

Interactive approaches are an attempt to directly map user inputs into camera parameters. When you’re playing Quake you are basically mapping 2D coordinates from your pointing device (most commonly a mouse) to the yaw ) and pitch (φ) angles of the virtual camera, and you’re using your keyboard to set up its position. This mapping is quite common in first person shooters, however, for different kinds of games such as real time strategy, are necessary different types of mappings.

Assisted approaches, similarly to interactive ones, leave the camera control task to the user but are able to step in and perform some degree of automatic camera control if needed. These approaches are common in 3D modelers, where you can manually fly the camera through the space, or ask the system for a front or side view of a certain object.

In automatic approaches the user is not directly involved in the control of the camera, which is completely handled by the system. Approaches of this class are very common in literature because they give the developer total control over the visualization, allowing them to introduce cinematographic techniques which would not be possible otherwise. Automatic approaches range from simple ones, often employed in videogames e.g. third-person role play games where the camera follows your avatar from a distance, or complex, as the ones used in virtual storytelling where one needs a more cinematic result.

To have an idea of the past work about camera control, our tagged Bibliography, albeit incomplete, is a starting point.