To minimize minor camera rotations, such as those caused by minor oversteering corrections, and to smooth larger camera rotations, the virtual camera system may use a squashing function. For instance, the angle of the turn the vehicle is performing may be input into the squashing function and a camera angle rotation value, which is the same, or more gradual than the angles of the turn, may be output.
At unprotected turns, the virtual camera system may rotate the virtual camera to generate imagery corresponding to oncoming traffic at unprotected turns. For instance, the virtual camera may rotate in the opposite direction of the vehicle's projected trajectory to generate imagery corresponding to other vehicles travelling on the road where the vehicle is attempting to turn.
The height and pitch of the virtual camera may also be adjusted to capture more or less of the vehicle's surroundings. For example, when the vehicle is stopped at an intersection the virtual camera may be positioned above the vehicle and the pitch of the virtual camera may be adjusted such that it looks straight down to the vehicle. The virtual camera may then generate a video which includes imagery of the vehicle's surroundings on all sides of the vehicle.