Authors |
|
ix | |
|
Chapter 1 Introduction to Computer Graphics |
|
|
1 | (24) |
|
1.1 Core Concepts and Vocabulary |
|
|
2 | (6) |
|
1.2 The Graphics Pipeline |
|
|
8 | (9) |
|
|
9 | (1) |
|
1.2.2 Geometry Processing |
|
|
10 | (2) |
|
|
12 | (2) |
|
|
14 | (3) |
|
1.3 Setting Up A Development Environment |
|
|
17 | (6) |
|
|
17 | (2) |
|
|
19 | (2) |
|
|
21 | (2) |
|
1.4 Summary and Next Steps |
|
|
23 | (2) |
|
Chapter 2 Introduction to Pygame and OpenGL |
|
|
25 | (58) |
|
2.1 Creating Windows With Pygame |
|
|
25 | (7) |
|
|
32 | (14) |
|
2.2.1 OpenGL Shading Language |
|
|
32 | (4) |
|
2.2.2 Compiling GPU Programs |
|
|
36 | (6) |
|
2.2.3 Rendering in the Application |
|
|
42 | (4) |
|
|
46 | (18) |
|
2.3.1 Using Vertex Buffers |
|
|
46 | (3) |
|
|
49 | (2) |
|
2.3.3 Hexagons, Triangles, and Squares |
|
|
51 | (8) |
|
2.3.4 Passing Data between Shaders |
|
|
59 | (5) |
|
2.4 Working With Uniform Data |
|
|
64 | (13) |
|
2.4.1 Introduction to Uniforms |
|
|
64 | (1) |
|
|
65 | (2) |
|
2.4.3 Applications and Animations |
|
|
67 | (10) |
|
|
77 | (4) |
|
2.5.1 Keyboard Input with Pygame |
|
|
77 | (3) |
|
2.5.2 Incorporating with Graphics Programs |
|
|
80 | (1) |
|
2.6 Summary and Next Steps |
|
|
81 | (2) |
|
Chapter 3 Matrix Algebra and Transformations |
|
|
83 | (50) |
|
3.1 Introduction To Vectors And Matrices |
|
|
83 | (19) |
|
3.1.1 Vector Definitions and Operations |
|
|
84 | (4) |
|
3.1.2 Linear Transformations and Matrices |
|
|
88 | (10) |
|
3.1.3 Vectors and Matrices in Higher Dimensions |
|
|
98 | (4) |
|
3.2 Geometric Transformations |
|
|
102 | (21) |
|
|
102 | (1) |
|
|
103 | (6) |
|
|
109 | (3) |
|
|
112 | (7) |
|
3.2.5 Local Transformations |
|
|
119 | (4) |
|
|
123 | (2) |
|
3.4 Incorporating with Graphics Programs |
|
|
125 | (7) |
|
3.5 Summary and Next Steps |
|
|
132 | (1) |
|
Chapter 4 A Scene Graph Framework |
|
|
133 | (60) |
|
4.1 Overview Of Class Structure |
|
|
136 | (2) |
|
|
138 | (6) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
144 | (20) |
|
|
145 | (2) |
|
|
147 | (3) |
|
|
150 | (3) |
|
4.3.4 Parametric Surfaces and Planes |
|
|
153 | (3) |
|
4.3.5 Spheres and Related Surfaces |
|
|
156 | (2) |
|
4.3.6 Cylinders and Related Surfaces |
|
|
158 | (6) |
|
|
164 | (8) |
|
|
165 | (1) |
|
|
166 | (6) |
|
4.5 Rendering Scenes With The Framework |
|
|
172 | (5) |
|
4.6 Custom Geometry And Material Objects |
|
|
177 | (7) |
|
|
184 | (8) |
|
|
185 | (3) |
|
|
188 | (4) |
|
4.8 Summary and Next Steps |
|
|
192 | (1) |
|
|
193 | (74) |
|
|
194 | (7) |
|
|
201 | (5) |
|
|
202 | (1) |
|
|
202 | (1) |
|
|
203 | (1) |
|
5.2.4 Parametric Surfaces |
|
|
204 | (2) |
|
5.3 Using Textures in Shaders |
|
|
206 | (6) |
|
5.4 Rendering Scenes with Textures |
|
|
212 | (3) |
|
5.5 Animated Effects With Custom Shaders |
|
|
215 | (6) |
|
5.6 Procedurally Generated Textures |
|
|
221 | (7) |
|
|
228 | (19) |
|
5.7.1 Rendering Text Images |
|
|
228 | (4) |
|
|
232 | (1) |
|
|
232 | (4) |
|
|
236 | (5) |
|
5.7.3 Heads-Up Displays and Orthogonal Cameras |
|
|
241 | (6) |
|
5.8 Rendering Scenes to Textures |
|
|
247 | (7) |
|
|
254 | (11) |
|
5.10 Summary and Next Steps |
|
|
265 | (2) |
|
Chapter 6 Light and Shadow |
|
|
267 | (64) |
|
6.1 Introduction To Lighting |
|
|
268 | (3) |
|
|
271 | (3) |
|
|
274 | (6) |
|
|
274 | (1) |
|
|
275 | (1) |
|
|
276 | (1) |
|
6.3.4 Parametric Surfaces |
|
|
276 | (4) |
|
6.4 Using Lights in Shaders |
|
|
280 | (11) |
|
6.4.1 Structs and Uniforms |
|
|
280 | (2) |
|
6.4.2 Light-Based Materials |
|
|
282 | (9) |
|
6.5 Rendering Scenes with Lights |
|
|
291 | (4) |
|
|
295 | (3) |
|
|
298 | (4) |
|
6.8 Bloom and Glow Effects |
|
|
302 | (10) |
|
|
312 | (16) |
|
6.9.1 Theoretical Background |
|
|
312 | (5) |
|
6.9.2 Adding Shadows to the Framework |
|
|
317 | (11) |
|
6.10 Summary and Next Steps |
|
|
328 | (3) |
Index |
|
331 | |