GPU Pro 2: Advanced Rendering Techniques
Format: PDF / Kindle (mobi) / ePub
This book focuses on advanced rendering techniques that run on the DirectX and/or OpenGL run-time with any shader language available. It includes articles on the latest and greatest techniques in real-time rendering, including MLAA, adaptive volumetric shadow maps, light propagation volumes, wrinkle animations, and much more. The book emphasizes techniques for handheld programming to reflect the increased importance of graphics on mobile devices. It covers geometry manipulation, effects in image space, shadows, 3D engine design, GPGPU, and graphics-related tools.
Source code and other materials are available for download on the book's CRC Press web page.
construction and the caching, which is sometimes found in planetary rendering engines [Brebion 08, Kemen 08]. Our scale is smaller, and once again we opted for greater artist flexibility. 3.1.2 Texturing Choice Our solution is based on per-pixel splatting from tiling atlas texture elements, thus it reuses texels over the entire surface of the terrain. This is similar to techniques implemented in other games (Battlestations: Pacific [Eidos 08], Figure 3.2, and Infinity [Brebion 08]), but instead
texture. The color of the dot at the center of each pixel represents the value of that pixel in the edges texture. The rhombuses, at a distance of 0.25 from the center of the pixel, indicate the sampling position, while their color represents the value returned by the bilinear access. 4.3.2 Fetching Crossing Edges Once the distances to the ends of the line are calculated, they are used to obtain the crossing edges. A naive approach for fetching the crossing edge of an end of a line would be to
algorithm in OpenGL using the Cg shading language. As test scenes, we used two models of different characteristics (shown in Figure 1.8): (a) the Sibenik cathedral and (b) the Vienna city model. Both scenes were populated with several dynamic objects. The walk-through sequences taken for the performance experiments are shown in the accompanying videos. Note that most SSAO artifacts caused by image noise are more distracting in animated sequences, hence we point interested readers to these videos
quality even for fine details in the background. Figure 1.10 shows a capture of a deforming cloak of an animated character. Although deforming objects are difficult to handle with temporal coherence, it can be seen that TSSAO significantly reduces the surface noise. We used the method of Fox and Compton for Figure 1.9, and the method of Ritschel et al. for Figure 1.10. In terms of visual image-quality, TSSAO performs better than SSAO in all our tests. It corresponds to at least a 32-sample SSAO
ocean rendering is more important. 1.3.1 Terrain In terrain rendering (see Figure 1.5) we can easy calculate the x- and z-coordinates with a single interpolation between the position of the vertices of the patch, but we also need the y-coordinate that represents the height of the terrain at every point and the texture coordinates. Since we have defined the terrain, to calculate the texture coordinates, we have only to take the final x- and z-positions and divide by the size of the terrain. This