GPU PRO 3: Advanced Rendering Techniques
Format: PDF / Kindle (mobi) / ePub
GPU Pro3, the third volume in the GPU Pro book series, offers practical tips and techniques for creating real-time graphics that are useful to beginners and seasoned game and graphics programmers alike.
Section editors Wolfgang Engel, Christopher Oat, Carsten Dachsbacher, Wessam Bahnassi, and Sebastien St-Laurent have once again brought together a high-quality collection of cutting-edge techniques for advanced GPU programming. With contributions by more than 50 experts, GPU Pro3: Advanced Rendering Techniques covers battle-tested tips and tricks for creating interesting geometry, realistic shading, real-time global illumination, and high-quality shadows, for optimizing 3D engines, and for taking advantage of the advanced power of the GPGPU.
Sample programs and source code are available for download on the book's CRC Press web page.
the pixel is split evenly between the current pixel and the neighbor. If the edge touches the edge of the pixel, the distance is −0.5 or 0.5 depending on if it is the top or bottom edge, and the coverage consequently goes to zero, meaning the neighbor pixel does not contribute to the final antialiased value of this pixel. The observant reader notes that the neighbor coverage never goes above 0.5. One might initially think that it should range from 0 to 1, but a quick look at Figure 4.1
precision and should be avoided, unless very restrictive conditions can be imposed on the art department (such as avoiding albedo/specular maps below certain luminance thresholds, for example). Since we are using an encoded format on PS3, hardware blending cannot be used. Luckily, the PS3’s GPU allows for a workaround. Blending can be performed in the pixel shader itself by sampling from the same render target into which you are rendering. This feature requires that a pixel be written only once
on the same drawcall (no overdraw). Such functionality allows for a very handy form of programmable blending that most hardware (including DX11-level hardware) lacks. 4. CryENGINE 3: Three Years of Work in Review Z-buffer depth caveats. Unlike previous engine iteration, we don’t output linear depth into a separate render target. On consoles and on DX10.1/DX11-level hardware (and on certain DX9 hardware) we can access the depth buffer directly. This saves performance, but with a few caveats:
the desired performance. The techniques range from screen-space approximations to using splat-based representations and spatial index structures. The first chapter in this section is “Ray-Traced Approximate Reflections Using a Grid of Oriented Splats,” by Holger Gruen. In this chapter, Gruen exploits the features of DX11-class hardware to render approximate ray-traced reflections in dynamic scene elements. His method creates a 3D grid containing a surface splat representation on-the-fly and then
construction stops at the coarsest resolution level (l=0) represented (0) by the single patch H0,0 covering the entire terrain. 2.3.2 The Compression Algorithm To reduce memory overhead, the multiresolution hierarchy is maintained in a compressed form. The compression is done directly during the quadtree construction process. We exploit a simple yet quite efficient compression scheme that is derived from our previous work [Yusov and Shevtsov 11]. The proposed technique has the following key