Atnaujinkite slapukų nuostatas

El. knyga: Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX

Edited by , Edited by , Edited by
  • Formatas: PDF+DRM
  • Išleidimo metai: 04-Aug-2021
  • Leidėjas: APress
  • Kalba: eng
  • ISBN-13: 9781484271858
  • Formatas: PDF+DRM
  • Išleidimo metai: 04-Aug-2021
  • Leidėjas: APress
  • Kalba: eng
  • ISBN-13: 9781484271858

DRM apribojimai

  • Kopijuoti:

    neleidžiama

  • Spausdinti:

    neleidžiama

  • El. knygos naudojimas:

    Skaitmeninių teisių valdymas (DRM)
    Leidykla pateikė šią knygą šifruota forma, o tai reiškia, kad norint ją atrakinti ir perskaityti reikia įdiegti nemokamą programinę įrangą. Norint skaityti šią el. knygą, turite susikurti Adobe ID . Daugiau informacijos  čia. El. knygą galima atsisiųsti į 6 įrenginius (vienas vartotojas su tuo pačiu Adobe ID).

    Reikalinga programinė įranga
    Norint skaityti šią el. knygą mobiliajame įrenginyje (telefone ar planšetiniame kompiuteryje), turite įdiegti šią nemokamą programėlę: PocketBook Reader (iOS / Android)

    Norint skaityti šią el. knygą asmeniniame arba „Mac“ kompiuteryje, Jums reikalinga  Adobe Digital Editions “ (tai nemokama programa, specialiai sukurta el. knygoms. Tai nėra tas pats, kas „Adobe Reader“, kurią tikriausiai jau turite savo kompiuteryje.)

    Negalite skaityti šios el. knygos naudodami „Amazon Kindle“.

This Open Access book is a must-have for anyone interested in real-time rendering. Ray tracing is the holy grail of gaming graphics, simulating the physical behavior of light to bring real-time, cinematic-quality rendering to even the most visually intense games. Ray tracing is also a fundamental algorithm used for architecture applications, visualization, sound simulation, deep learning, and more.

Ray Tracing Gems II is written by industry experts with a particular focus on ray tracing, and it offers a practical means to master the new capabilities of current and future GPUs with the latest graphics APIs.

What You'll Learn:
  • The latest ray tracing techniques for developing real-time applications in multiple domains
  • Case studies from developers and studios who have shipped products that use real-time ray tracing.
  • Guidance, advice and best practices for rendering applications with various GPU-based ray tracing APIs (DirectX Raytracing, Vulkan Ray Tracing)
  • High performance graphics for 3D graphics, virtual reality, animation, and more

Who This Book Is For:
Game and graphics developers who are looking to leverage the latest hardware and software tools for real-time rendering and ray tracing to enhance their applications across a variety of disciplines.
Preface xix
Foreword xxiii
Contributors xxix
Notation lv
PART I Ray Tracing Foundations
5(186)
Chapter 1 A Breakneck Summary of Photographic Terms (and Their Utility to Ray Tracing)
9(28)
1.1 Introduction
9(1)
1.2 Digital Sensor Technology
10(3)
1.3 Film
13(1)
1.4 Common Capture Dimensions
14(2)
1.5 Common Capture Resolutions
16(1)
1.6 Lensing
16(3)
1.7 Shutter
19(2)
1.8 Exposure
21(3)
1.9 Equivalency
24(2)
1.10 Physical Lenses
26(1)
1.11 Bokeh
27(2)
1.12 Various Lens Imperfections
29(4)
1.13 Optical Elements
33(1)
1.14 Anamorphic
34(1)
1.15 Camera Movement
34(3)
Chapter 2 Ray Axis-Aligned Bounding Box Intersection
37(4)
2.1 The Method
37(4)
Chapter 3 Essential Ray Generation Shaders
41(24)
3.1 Introduction
41(1)
3.2 Camera Rays
42(5)
3.3 Pinhole Perspective
47(3)
3.4 Thin Lens
50(2)
3.5 Generalized Panini
52(3)
3.6 Fisheye
55(1)
3.7 Lenslet
56(2)
3.8 Octahedral
58(2)
3.9 Cube Map
60(1)
3.10 Orthographic
61(1)
3.11 Fibonacci Sphere
62(3)
Chapter 4 Hacking the Shadow Terminator
65(12)
4.1 Introduction
66(2)
4.2 Related Work
68(2)
4.3 Moving the Intersection Point in Hindsight
70(2)
4.4 Analysis
72(2)
4.5 Discussion and Limitations
74(1)
4.6 Conclusion
75(2)
Chapter 5 Sampling Textures with Missing Derivatives
77(12)
5.1 Introduction
77(1)
5.2 Texture Coordinate Derivatives at Visible Points
78(6)
5.3 Further Applications
84(1)
5.4 Comparison
85(1)
5.5 Conclusion
85(4)
Chapter 6 Differential Barycentric Coordinates
89(6)
6.1 Background
89(2)
6.2 Method
91(1)
6.3 Code
92(3)
Chapter 7 Texture Coordinate Gradients Estimation for Ray Cones
95(10)
7.1 Background
95(2)
7.2 Ray Cone Gradients
97(2)
7.3 Comparison and Results
99(3)
7.4 Sample Code
102(1)
7.5 Conclusion
102(3)
Chapter 8 Reflection and Refraction Formulas
105(4)
8.1 Reflection
105(1)
8.2 Refraction
105(4)
Chapter 9 The Schlick Fresnel Approximation
109(6)
9.1 Introduction
109(1)
9.2 The Fresnel Equations
109(1)
9.3 The Schlick Approximation
110(2)
9.4 Dielectrics vs. Conductors
112(1)
9.5 Approximations for Modeling the Reflectance of Metals
112(3)
Chapter 10 Refraction Ray Cones for Texture Level of Detail
115(12)
10.1 Introduction
115(2)
10.2 Our Method
117(4)
10.3 Results
121(3)
10.4 Conclusion
124(3)
Chapter 11 Handling Translucency with Real-Time Ray Tracing
127(12)
11.1 Categories of Translucent Material
127(1)
11.2 Overview
128(1)
11.3 Single Translucent Pass
129(2)
11.4 Pipeline Setup
131(1)
11.5 Visibility for Semitransparent Materials
132(5)
11.6 Conclusion
137(2)
Chapter 12 Motion Blur Corner Cases
139(14)
12.1 Introduction
139(2)
12.2 Dealing with Varying Motion Sample Counts
141(3)
12.3 Combining Transformation and Deformation Motion
144(2)
12.4 Incoherent Motion
146(4)
12.5 Conclusion
150(3)
Chapter 13 Fast Spectral Upsampling of Volume Attenuation Coefficients
153(8)
13.1 Introduction
153(2)
13.2 Proposed Solution
155(2)
13.3 Results
157(1)
13.4 Conclusion
157(4)
Chapter 14 The Reference Path Tracer
161(30)
14.1 Introduction
161(2)
14.2 Algorithm
163(1)
14.3 Implementation
164(21)
14.4 Conclusion
185(6)
PART II APIs and Tools
191(134)
Chapter 15 The Shader Binding Table Demystified
193(20)
15.1 The Shader Binding Table
193(3)
15.2 Shader Record Index Calculation
196(2)
15.3 API-Specific Details
198(5)
15.4 Common Shader Binding Table Configurations
203(7)
15.5 Summary
210(3)
Chapter 16 Introduction to Vulkan Ray Tracing
213(44)
16.1 Introduction
213(1)
16.2 Overview
214(1)
16.3 Getting Started
215(1)
16.4 The Vulkan Ray Tracing Pipeline
215(3)
16.5 HLSL/GLSL Support
218(2)
16.6 Ray Tracing Shader Example
220(3)
16.7 Overview of Host Initialization
223(1)
16.8 Vulkan Ray Tracing Setup
224(21)
16.9 Creating Vulkan Ray Tracing Pipelines
245(3)
16.10 Shader Binding Tables
248(4)
16.11 Ray Dispatch
252(1)
16.12 Additional Resources
253(1)
16.13 Conclusion
254(3)
Chapter 17 Using Bindless Resources with DirectX Raytracing
257(24)
17.1 Introduction
257(2)
17.2 Traditional Binding with DXR
259(2)
17.3 Bindless Resources in D3D12
261(6)
17.4 Bindless Resources with DXR
267(6)
17.5 Practical Implications of Using Bindless Techniques
273(4)
17.6 Upcoming D3D12 Features
277(1)
17.7 Conclusion
278(3)
Chapter 18 WebRays: Ray Tracing on the Web
281(20)
18.1 Introduction
281(2)
18.2 Framework Architecture
283(3)
18.3 Programming with WebRays
286(6)
18.4 Use Cases
292(6)
18.5 Conclusions and Future Work
298(3)
Chapter 19 Visualizing and Communicating Errors in Rendered Images
301(24)
19.1 Introduction
301(2)
19.2 Lip
303(4)
19.3 The Tool
307(1)
19.4 Example Usage and Output
308(6)
19.5 Rendering Algorithm Development and Evaluation
314(4)
19.6 Appendix: Mean versus Weighted Median
318(7)
PART III Sampling
325(74)
Chapter 20 Multiple Importance Sampling 101
327(12)
20.1 Direct Light Estimation
327(8)
20.2 A Path Tracer with MIS
335(1)
20.3 Closing Words and Further Reading
335(4)
Chapter 21 The Alias Method for Sampling Discrete Distributions
339(6)
21.1 Introduction
339(1)
21.2 Basic Intuition
339(2)
21.3 The Alias Method
341(1)
21.4 Alias Table Construction
341(1)
21.5 Additional Reading and Resources
342(3)
Chapter 22 Weighted Reservoir Sampling: Randomly Sampling Streams
345(6)
22.1 Introduction
345(1)
22.2 Usage in Computer Graphics
346(1)
22.3 Problem Description
346(1)
22.4 Reservoir Sampling with or without Replacement
346(1)
22.5 Simple Algorithm for Sampling with Replacement
347(1)
22.6 Weighted Reservoir Sampling for K > 1
348(1)
22.7 An Interesting Property
348(1)
22.8 Additional Reading
348(3)
Chapter 23 Rendering Many Lights with Grid-Based Reservoirs
351(16)
23.1 Introduction
351(1)
23.2 Problem Statement
352(4)
23.3 Grid-Based Reservoirs
356(1)
23.4 Implementation
357(6)
23.5 Results
363(1)
23.6 Conclusions
364(3)
Chapter 24 Using Blue Noise for Ray Traced Soft Shadows
367(32)
24.1 Introduction
367(2)
24.2 Overview
369(1)
24.3 Blue Noise Samples
369(3)
24.4 Blue Noise Masks
372(2)
24.5 Void and Cluster Algorithm
374(2)
24.6 Blue Noise Filtering
376(2)
24.7 Blue Noise for Soft Shadows
378(11)
24.8 Comparison with Interleaved Gradient Noise
389(2)
24.9 Perceptual Error Evaluation
391(1)
24.10 Conclusion
392(7)
PART IV Shading and Effects
399(118)
Chapter 25 Temporally Reliable Motion Vectors for Better Use of Temporal Information
401(16)
25.1 Introduction
401(1)
25.2 Background
402(1)
25.3 Temporally Reliable Motion Vectors
403(11)
25.4 Performance
414(1)
25.5 Conclusion
415(2)
Chapter 26 Ray Traced Level of Detail Cross-Fades Made Easy
417(10)
26.1 Introduction
417(3)
26.2 Problem Statement
420(1)
26.3 Solution
421(2)
26.4 Future Work
423(1)
26.5 Conclusion
424(3)
Chapter 27 Ray Tracing Decals
427(14)
27.1 Introduction
427(1)
27.2 Decal Formulation
428(1)
27.3 Ray Tracing Decals
429(6)
27.4 Decal Sampling
435(1)
27.5 Optimizations
435(2)
27.6 Advanced Features
437(1)
27.7 Additional Notes
438(1)
27.8 Performance
438(2)
27.9 Conclusion
440(1)
Chapter 28 Billboard Ray Tracing for Impostors and Volumetric Effects
441(16)
28.1 Introduction
441(1)
28.2 Impostors
441(5)
28.3 Volumetric Effects
446(6)
28.4 Evaluation
452(1)
28.5 Conclusion
453(4)
Chapter 29 Hybrid Ray Traced and Image-Space Refractions
457(12)
29.1 Introduction
457(1)
29.2 Image-Space Refractions
458(1)
29.3 Hybrid Refractions
459(2)
29.4 Implementation
461(3)
29.5 Results
464(2)
29.6 Conclusion
466(3)
Chapter 30 Real-Time Ray Traced Caustics
469(30)
30.1 Introduction
469(2)
30.2 Adaptive Anisotropic Photon Scattering
471(15)
30.3 Ray-Guided Water Caustics
486(10)
30.4 Conclusion
496(3)
Chapter 31 Tilt-Shift Rendering Using a Thin Lens Model
499(18)
31.1 Introduction
499(1)
31.2 Thin Lens Model
500(4)
31.3 Lens Shift
504(2)
31.4 Lens Tilt
506(1)
31.5 Directing the Tilt
507(4)
31.6 Results
511(6)
PART V Intersection
517(96)
Chapter 32 Fast and Robust Ray/OBB Intersection Using the Lorentz Transformation
519(10)
32.1 Introduction
519(1)
32.2 Definitions
520(1)
32.3 Ray/AABB Intersection
521(2)
32.4 Ray/OBB Intersection
523(2)
32.5 Computing Additional Intersection Data
525(1)
32.6 Conclusion
526(3)
Chapter 33 Real-Time Rendering of Complex Fractals
529(16)
33.1 Overview
529(3)
33.2 Distance Functions
532(5)
33.3 Implementation
537(5)
33.4 Conclusion
542(3)
Chapter 34 Improving Numerical Precision in Intersection Programs
545(6)
34.1 The Problem
545(1)
34.2 The Method
546(5)
Chapter 35 Ray Tracing of Blobbies
551(18)
35.1 Motivation
551(2)
35.2 Anisotropic Blobbies
553(1)
35.3 BVH and Higher-Order Motion Blur
554(2)
35.4 Intersection Methods
556(9)
35.5 Results
565(4)
Chapter 36 Curved Ray Traversal
569(30)
36.1 Introduction
569(2)
36.2 Background
571(7)
36.3 Implementation
578(16)
36.4 Conclusions
594(5)
Chapter 37 Ray-Tracing Small Voxel Scenes
599(14)
37.1 Introduction
599(1)
37.2 Assets
600(1)
37.3 Geometry and Acceleration Structures
600(3)
37.4 Shading
603(3)
37.5 Performance Tests
606(2)
37.6 Discussion
608(5)
PART VI Performance
613(124)
Chapter 38 CPU Performance in DXR
615(10)
38.1 Introduction
615(1)
38.2 The Ray Tracing Pipeline State Object
615(2)
38.3 The Shader Table
617(2)
38.4 The Acceleration Structure
619(4)
38.5 Conclusion
623(2)
Chapter 39 Inverse Transform Sampling Using Ray Tracing Hardware
625(18)
39.1 Introduction
625(2)
39.2 Traditional 2D Texture Importance Sampling
627(3)
39.3 Related Works
630(1)
39.4 Ray Traced Inverse Transform Sampling
630(3)
39.5 Implementation Details
633(2)
39.6 Evaluation
635(5)
39.7 Conclusion and Future Work
640(3)
Chapter 40 Accelerating Boolean Visibility Operations Using RTX Visibility Masks
643(16)
40.1 Background
643(1)
40.2 Overview
644(1)
40.3 Partial Visibility
645(1)
40.4 Traversal
645(2)
40.5 Visibility Masks as Boolean Visibility Functions
647(2)
40.6 Accelerated Expressions
649(2)
40.7 Solid Caps
651(5)
40.8 Camera Initialization
656(3)
Chapter 41 Practical Spatial Hash Map Updates
659(14)
41.1 Introduction
660(1)
41.2 Spatial Hashing
660(4)
41.3 Complex Data Storage and Update
664(1)
41.4 Implementation
665(3)
41.5 Applications
668(2)
41.6 Conclusion
670(3)
Chapter 42 Efficient Spectral Rendering on the GPU for Predictive Rendering
673(26)
42.1 Motivation
673(2)
42.2 Introduction to Spectral Rendering
675(4)
42.3 Spectral Rendering on the GPU
679(6)
42.4 Multiplexing with Semitransparent Materials
685(4)
42.5 A Step Toward Real-Time Performance
689(4)
42.6 Discussion
693(3)
42.7 Conclusion and Outlook
696(3)
Chapter 43 Efficient Unbiased Volume Path Tracing on the GPU
699(14)
43.1 Background
700(2)
43.2 Compressed Data Structure
702(1)
43.3 Filtering and Range Dilation
703(1)
43.4 DDA Traversal
704(3)
43.5 Results
707(3)
43.6 Conclusion
710(3)
Chapter 44 Path Tracing RBF Particle Volumes
713(12)
44.1 Introduction
714(1)
44.2 Overview
715(2)
44.3 Implementation
717(2)
44.4 Results and Conclusion
719(6)
Chapter 45 Fast Volumetric Gradient Shading Approximations for Scientific Ray Tracing
725(12)
45.1 Introduction
725(2)
45.2 Approach
727(1)
45.3 Results
728(4)
45.4 Conclusion
732(5)
PART VII Ray Tracing in the Wild
737
Chapter 46 Ray Tracing in Control
739(26)
46.1 Introduction
739(3)
46.2 Reflections
742(3)
46.3 Transparent Reflections
745(4)
46.4 Near Field Indirect Diffuse Illumination
749(1)
46.5 Contact Shadows
750(3)
46.6 Denoising
753(8)
46.7 Performance
761(2)
46.8 Conclusions
763(2)
Chapter 47 Light Sampling in Quake 2 Using Subset Importance Sampling
765(26)
47.1 Introduction
765(2)
47.2 Overview
767(1)
47.3 Background
768(3)
47.4 Stochastic Light Subset Sampling
771(6)
47.5 Reducing Variance with Pseudo-marginal MIS
777(4)
47.6 Stochastic Light Subset MIS
781(2)
47.7 Results and Discussion
783(3)
47.8 Conclusions
786(5)
Chapter 48 Ray Tracing in Fortnite
791(32)
48.1 Introduction
791(1)
48.2 Goals
792(1)
48.3 Challenges
793(1)
48.4 Technologies
794(25)
48.5 Fortnite Cinematics
819(1)
48.6 Conclusion
819(4)
Chapter 49 ReBLUR: A Hierarchical Recurrent Denoiser
823(22)
49.1 Introduction
823(2)
49.2 Definitions and Acronyms
825(1)
49.3 The Principle
825(1)
49.4 Inputs
826(1)
49.5 Pipeline Overview
827(4)
49.6 Disocclusion Handling
831(1)
49.7 Diffuse Accumulation
831(1)
49.8 Specular Accumulation
832(7)
49.9 Sampling Space
839(1)
49.10 Spatial Filtering
840(1)
49.11 Anti-lag
841(1)
49.12 Limitations
842(1)
49.13 Performance
842(1)
49.14 Future Work
843(2)
Chapter 50 Practical Solutions for Ray Tracing Content Compatibility in Unreal Engine 4
845
50.1 Introduction
846(1)
50.2 Hybrid Translucency
846(8)
50.3 Foliage
854(4)
50.4 Summary
858
Adam Marrs is a Senior Graphics Engineer in the Game Engines and Core Technology group at NVIDIA. He holds a PhD in computer science, has conducted graphics research in academia and industry, published at HPG, Eurographics, JCGT, and wrote for the GPU Zen 2 and Ray Tracing Gems books. He has shipped graphics code in AAA game titles and commercial game engines. Peter Shirley is a Distinguished Engineer in the Research group at NVIDIA. He holds a PhD in computer science and has worked in academics, startup companies, and industry. He is the author of several books including the recent Ray Tracing in One Weekend series. Ingo Wald is a Director, Ray Tracing, at NVIDIA. He holds a PhD in computer science, has a long history of ray tracing related research in both academia and industry, and is probably best known for authoring and co-authoring various papers and open-source software project related to rendering, visualization, data structures, and other topics that in one or another form usually involve ray tracing.