Muutke küpsiste eelistusi

E-raamat: Real-Time Shading [Taylor & Francis e-raamat]

  • Formaat: 376 pages
  • Ilmumisaeg: 30-Jun-2020
  • Kirjastus: CRC Press
  • ISBN-13: 9780429062995
  • Taylor & Francis e-raamat
  • Hind: 203,11 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Tavahind: 290,16 €
  • Säästad 30%
  • Formaat: 376 pages
  • Ilmumisaeg: 30-Jun-2020
  • Kirjastus: CRC Press
  • ISBN-13: 9780429062995
This book covers real-time shading systems, their design and how they work. Procedural shading, long valued for off-line rendering and production animation is now possible on interactive graphics hardware. These developments are important for areas such as game development, product design, and scientific visualization, among others. The authors include examples of techniques for achieving common effects efficiently in a real-time shading language ranging from full procedural shading on advanced specialized hardware to limited, yet surprisingly flexible shading on unextended OpenGL, to modern PC graphics accelerators.
Preface xv
Acknowledgments xix
I Fundamentals
1(110)
1 Introduction
3(12)
1.1 Terminology
4(2)
1.1.1 Real Time
4(1)
1.1.2 Shading
5(1)
1.2 Representations of Shading
6(4)
1.2.1 Parameterized Analytical Shading Models
6(1)
1.2.2 Procedural Shaders
6(2)
1.2.3 Textures and Sampled Representations
8(2)
1.3 A Grammatical Model for Shading Pipelines
10(5)
1.3.1 Gouraud Interpolation
12(1)
1.3.2 Deferred Shading
12(3)
2 Reflectance
15(30)
2.1 BRDFs and Lighting Models
16(5)
2.2 Physical Plausibility
21(3)
2.2.1 Energy Conservation
22(1)
2.2.2 Reciprocity
23(1)
2.3 Isotropy and Anisotropy
24(1)
2.4 Surface Coordinate Conventions
25(3)
2.5 Basic Reflection Models
28(5)
2.5.1 Diffuse Reflection
28(1)
2.5.2 Specular Reflection
29(1)
2.5.3 Fresnel Effect
30(3)
2.6 Phenomological Reflectance Models
33(4)
2.6.1 Phong Model
33(1)
2.6.2 Modified Phong Model
34(1)
2.6.3 Blinn-Phong Model
34(1)
2.6.4 Lafortune Generalized Phong Model
35(1)
2.6.5 Banks Anisotropic Model
36(1)
2.7 Physically Based Models
37(8)
2.7.1 Cook-Torrance Model
39(3)
2.7.2 Ashikhmin Model
42(3)
3 Texturing
45(30)
3.1 Texture Mapping
45(3)
3.2 Shading Techniques Based on Texture Mapping
48(11)
3.2.1 Ambient and Diffuse Textures
48(1)
3.2.2 Environment Maps
49(5)
3.2.3 Displacement Maps
54(1)
3.2.4 Bump Maps
55(3)
3.2.5 Shadow Maps
58(1)
3.3 Image Texture Antialiasing
59(8)
3.3.1 Texture Magnification
61(2)
3.3.2 Texture Prefiltering for Minification
63(4)
3.4 Solid Texturing
67(1)
3.5 Procedural Texturing
68(1)
3.6 Noise Functions
69(6)
3.6.1 Implementations
71(1)
3.6.2 A Multipass Implementation
72(3)
4 Procedural Shaders
75(28)
4.1 Logical Model
75(2)
4.2 Procedural Shading Testbeds
77(2)
4.3 RenderMan
79(2)
4.4 Elements of Procedural Shaders
81(19)
4.4.1 Maps
83(1)
4.4.2 Modeling
84(3)
4.4.3 Transformation
87(3)
4.4.4 Primitives
90(1)
4.4.5 Interpolation
91(1)
4.4.6 Surface Shading
92(2)
4.4.7 Lighting
94(2)
4.4.8 Volume and Atmospheric Effects
96(1)
4.4.9 Image Warping and Filtering
97(1)
4.4.10 Shading Capabilities
98(2)
4.5 Antialiasing
100(3)
4.5.1 Analytical Filtering
101(1)
4.5.2 Frequency Attenuation
101(1)
4.5.3 Super sampling
102(1)
5 Graphics Hardware
103(8)
5.1 Graphics Accelerators
103(1)
5.2 Programmable Shading Hardware
104(2)
5.3 Vertex Shaders
106(1)
5.4 Pixel Shaders
106(2)
5.4.1 Dependent Texturing
107(1)
5.5 Performance
108(1)
5.6 Logical Models for Consumer Hardware
108(3)
II Building Blocks for Shading
111(62)
6 Texture Shading
113(30)
6.1 One-Texture Shading
115(1)
6.2 Parameterization and Interpolation
116(2)
6.3 Normal Lighting
118(1)
6.4 Factored Multitexture Models
119(5)
6.5 Anisotropic Models
124(7)
6.5.1 Banks Model
125(1)
6.5.2 Ashikhmin Model
126(5)
6.6 Numerical Factorization
131(7)
6.6.1 Singular Value Decomposition
132(2)
6.6.2 Homomorphic Factorization
134(4)
6.7 Texture Mapping Revisited
138(5)
6.7.1 Material Mapping
138(2)
6.7.2 Bump, Twist, and Frame Mapping
140(3)
7 Environment Maps for Illumination
143(20)
7.1 Decomposition
144(3)
7.1.1 Generalized Mirror Reflections using a Fresnel Term
145(2)
7.2 Prefiltered Environment Maps
147(11)
7.2.1 Diffusely Prefiltered Maps
149(2)
7.2.2 Glossy Prefiltering of Environment Maps
151(2)
7.2.3 Approximations of General Isotropic BRDFs
153(1)
7.2.4 Hardware-Accelerated Prefiltering
154(4)
7.3 Environment Map Interpolation
158(5)
8 The Texture Atlas
163(10)
8.1 Shading with a Texture Atlas
163(3)
8.2 Texture Atlas Layout
166(3)
8.3 Avoiding Seam Artifacts
169(4)
III High-Level Procedural Shading
173(134)
9 Classifying Shaders
175(8)
9.1 Fixed-Function Shading
175(1)
9.2 Parameterized Shading
175(2)
9.3 Programmable Shading
177(1)
9.4 Procedural Shading
178(1)
9.5 Why Use Procedural Shading?
179(4)
10 APST: Antialiased Parameterized Solid Texturing
183(12)
10.1 Examples
184(4)
10.2 Antialiasing
188(5)
10.3 Implementation
193(2)
11 Compiling Real-Time Procedural Shaders
195(16)
11.1 Organization of a Compiler
195(6)
11.1.1 Parsing
196(1)
11.1.2 Internal Passes
197(2)
11.1.3 Optimizations
199(1)
11.1.4 Instruction Selection
200(1)
11.1.5 Register and Memory Allocation
201(1)
11.1.6 Code Generation
201(1)
11.2 Intermediate Forms
201(2)
11.3 Optimization for Graphics Hardware
203(1)
11.3.1 Code Factoring
203(1)
11.3.2 Specializing Shaders
203(1)
11.4 Compiler Tools
204(7)
11.4.1 Parsing
204(1)
11.4.2 Code Generation
205(6)
12 RenderMan
211(8)
12.1 Shader Types
211(1)
12.2 Illuminate
212(2)
12.3 Data Types
214(1)
12.4 Functions
214(5)
13 Pfman: Procedural Shaders on PixelFlow
219(12)
13.1 Logical Model
219(1)
13.2 The Pfman Language
219(4)
13.2.1 Fixed Point
220(2)
13.2.2 Common Shader Parameters
222(1)
13.2.3 Functions
223(1)
13.2.4 Example
223(1)
13.3 Pfman Implementation
223(8)
13.3.1 Tools
228(1)
13.3.2 Compiler Passes
228(3)
14 ISL: Interactive Shading Language
231(8)
14.1 Logical Model
232(1)
14.2 The ISL Language
232(4)
14.2.1 Data Types
234(1)
14.2.2 Control Constructs
235(1)
14.3 OpenGL Shader Implementation
236(3)
14.3.1 Conversion to Linear Form
236(1)
14.3.2 Targeting Hardware
237(1)
14.3.3 Emitting Code
238(1)
15 RTSL: The Stanford Real-Time Shading Language
239(10)
15.1 Logical Model
239(1)
15.2 The RTSL Language
240(2)
15.2.1 Computational Frequency
240(1)
15.2.2 Data Types
241(1)
15.3 Functions
242(3)
15.3.1 Operations
243(2)
15.3.2 Integrate
245(1)
15.4 RTSL Implementation
245(4)
15.4.1 Multipass Back-End
246(1)
15.4.2 Register Combiner Back-end
246(3)
16 ESAATL: The Evans & Sutherland Multitexturing Language
249(12)
16.1 Bracketing
250(3)
16.1.1 Scalar Bracketing
250(1)
16.1.2 Unit Vector Bracketing
251(1)
16.1.3 Interpolation of Bracketed Expressions
251(2)
16.2 Multipass/Multitextured Texture Shading
253(1)
16.3 Example: A Seeliger Skin Shader
254(2)
16.4 Stratification
256(5)
17 OpenGL 2.0
261(6)
17.1 Logical Model
261(1)
17.2 Data Types
262(1)
17.3 Control Constructs
263(1)
17.4 Functions
263(1)
17.5 Comparison
264(3)
18 APIs
267(40)
18.1 PixelFlow
268(4)
18.1.1 Shading Parameters
268(1)
18.1.2 Shader Instances
269(2)
18.1.3 Lights
271(1)
18.2 OpenGL Shader
272(2)
18.2.1 Callbacks
272(1)
18.2.2 Class Hierarchy
273(1)
18.3 SMASH
274(33)
18.3.1 Definition
276(1)
18.3.2 Activating Shaders
276(1)
18.3.3 Deleting Shaders
277(1)
18.3.4 Saving and Restoring Precompiled Shaders
277(1)
18.3.5 Executing Shaders
278(1)
18.3.6 Shader Programming Calls
278(14)
18.3.7 Subshaders
292(1)
18.3.8 Base Example
293(1)
18.3.9 Macros
294(2)
18.3.10 Textual Infix Expressions
296(6)
18.3.11 Textual Shading Languages
302(1)
18.3.12 Object-Oriented Toolkits
302(5)
IV And Beyond
307(16)
19 Predicting the Present
309(14)
19.1 An Accounting of the Past
310(1)
19.2 Floating Point
310(4)
19.3 Real-Time Render Man versus Real-Time Toy Story
314(1)
19.4 Recirculating Pipelines
315(2)
19.5 Render To Texture
317(1)
19.6 Virtualizing Resources
318(1)
19.7 Transparency and Order Independence
318(1)
19.8 Applications
319(4)
Bibliography 323(16)
Index 339
Olano, Marc; Hart, John; Heidrich, Wolfgang; McCool, Michael