GeForce GTX 980 WhitepaperMAXWELL: ENABLING THE NEXTFRONTIER IN PC GRAPHICS21Hardware Acceleration for VXGI – Multi-Projection and Conservative RasterOne exciting property of VXGI is that it is very scalable—by changing the density of the voxel grid, andthe amount of tracing of that voxel grid that is performed per pixel, it is possible for VXGI to run across awide range of hardware, including Kepler GPUs, console hardware, etc. However, for Maxwell it was animportant goal to identify opportunities for significant acceleration of VXGI that would enable us todemonstrate its full potential and achieve the highest possible level of realism.As described above, VXGI based lighting has three major phases—the first two are new, accomplishingthe generation of a new voxel data structure, while the third stage is a modification of the existinglighting phase of real time rendering. Therefore, to enable VXGI as a real-time dynamic lightingtechnique, it is important that the new work—the creation of the voxel data structure—is as fast aspossible, as this is the part of VXGI that is new work for the renderer. Fast voxelization ensures thatchanges in lighting or the position of objects in the scene can be reflected immediately in the lightingcalculation.With this in mind, it was a top priority for Maxwell to implement hardware acceleration for this stage.One important observation is that the voxelization stage is challenged by the need to analyze the samescene geometry from many views—each face of the voxel cube—to determine coverage and lighting.We call this property of rendering the same scene from multiple views “multi-projection.” It turns outthat multi-projection is a property of other important rendering algorithms as well. For example, cubemaps (used commonly for assisting with modelling of reflections) require rendering to six faces. And aswill be discussed in more depth later, shadow maps can also be rendered at multiple resolutions.Therefore, acceleration of multi-projection is a broadly useful capability. Today, multi-projection can beimplemented either by explicitly sending geometry to the hardware multiple times, or by expandinggeometry in the geometry shader; however, neither approach is particularly efficient. The specificcapability that we added to speed up multi-projection is called “Viewport Multicast.” With this feature,Maxwell can use dedicated hardware to automatically broadcast input geometry to any number ofdesired render targets, avoiding geometry shader overhead. In addition, we added some hardwaresupport for certain kinds of per viewport processing that are important to this application.“Conservative Raster” is the second feature in Maxwell that accelerates the voxelization process. Asillustrated in the following Figure 11, conservative raster is an alternate algorithm for trianglerasterization. In traditional rasterization, a triangle covers a pixel if it covers a specific sample pointwithin that pixel, for example, the pixel center in the following picture. Therefore with traditionalrasterization, the four purple pixels would be considered “covered” by the triangle.With conservative rasterization rules on the other hand, a pixel is considered covered if any part of thepixel is covered by any part of the triangle. In the following picture, the seven orange pixels are also“covered” by conservative rasterization rules.