GPU Pro: Advanced Rendering Techniques
Format: PDF / Kindle (mobi) / ePub
This book covers essential tools and techniques for programming the graphics processing unit. Brought to you by Wolfgang Engel and the same team of editors who made the ShaderX series a success, this volume covers advanced rendering techniques, engine design, GPGPU techniques, related mathematical techniques, and game postmortems. A special emphasis is placed on handheld programming to account for the increased importance of graphics on mobile devices, especially the iPhone and iPod touch.
Example programs and source code can be downloaded from the book's CRC Press web page.
For a detailed description of these λ values refer to the extra notes available at http://www.akpeters.com/gpupro. ✐ ✐ ✐ ✐ ✐ ✐ ✐ ✐ 22 I Mathematics Figure 2.6. Warping strength varies as light direction changes. Let λSSM , λPSM , λLISPSM and λTSM be the values in SSM, PSM, LISPSM, and TSM, respectively. We review the behavior of each algorithm in turn: • λSSM does not employ any warping and therefore can be considered to have an inﬁnite λ. The distribution of aliasing error in the.
Procedural scene graph, now a module represents both the node (a passive object) and its intersection with an active object. Figure 2.5 shows the new module type. If the represented node of the procedural scene does not intersect with the represented active object, the new culling strategy throws away a module. Listing 2.11 shows the HLSL implementation of the culling strategy in the case of bounding spheres. The rest of the algorithm remains the same. Since we are not interested in rendering the.
The computational complexity of the function being evaluated it may be beneﬁcial to perform more than one evaluation in a kernel and store temporary results in a shared memory. After this, temporary results need to be copied from shared memory to global memory in one instruction, thus achieving coalescing. In many circumstances high-precision function evaluation is not required, and faster math intrinsics available in CUDA can be used. They can either be called directly or automatically enabled.
Substantial processing power, being even less eﬃcient with randomized directions (as it is hurting GPU parallelism, but it is still faster than integrating more directions). However, it is used only when the surface height ﬁeld is changing. Moreover, it can be accumulated throughout several frames, amortizing the cost. 1.7 Surface Blending 1.7.1 Alpha Blending Blending is commonly used for surface composites, such as terrain, where several varied textures have to mix together (e.g., rocky coast.
Duplication, we will use the geometry shader. At the geometry shader level, we receive the three vertices of a triangle, with its corresponding curvatures. These curvatures are assigned as three texture coordinates to the vertices of the output triangle in the same order. Thus, the fragment shader will receive the three values without interpolation. The code corresponding to the geometry shader appears in Listing 2.4. 2.4.3 Pixel Texturing The ﬁnal color composition is performed in the following.