1. A method performed by one or more processors, the method comprising: receiving (i) a primary view image showing a virtual 3-dimensional (3D) scene from a view of a primary camera, the primary view image comprising a plurality of layers, wherein the layers comprise 2D projections of one or more objects in the virtual 3D scene at respective depth values, the depth values being measurements of depth between the primary camera and the objects in the scene; (ii) a depth map comprising a compilation of the depth values; and (iii) a camera offset between the primary camera and a secondary camera; calculating, for each of a plurality of pixels in the primary view image, a respective disparity vector using the received depth map and the camera offset, wherein each disparity vector measures how much the respective pixel is to be repositioned, and wherein each disparity vector is calculated by: obtaining the depth value of the respective pixel from the depth map and 2-dimensional coordinates of the pixel with respect to a camera space of the primary camera; determining a point in a 3-dimensional (3D) world space of the virtual 3D scene at the depth value along a vector between the primary camera and the pixel; transforming the point in the world space to 2-dimensional (2D) coordinates of a point in a camera space of the secondary camera; and calculating the disparity vector as the vector difference of the 2D coordinates of the pixel and the 2D coordinates of the point in the camera space of the secondary camera; and generating a secondary view image, wherein a plurality of pixels of the secondary view image are pixels of the plurality of pixels of the primary view image that have been repositioned according to the calculated disparity vectors.