Muutke küpsiste eelistusi

Developing Graphics Frameworks with Python and OpenGL [Kõva köide]

  • Formaat: Hardback, 334 pages, kõrgus x laius: 234x156 mm, kaal: 700 g, 142 Line drawings, color; 15 Line drawings, black and white; 157 Illustrations, color
  • Ilmumisaeg: 07-Jul-2021
  • Kirjastus: CRC Press
  • ISBN-10: 0367721805
  • ISBN-13: 9780367721800
  • Formaat: Hardback, 334 pages, kõrgus x laius: 234x156 mm, kaal: 700 g, 142 Line drawings, color; 15 Line drawings, black and white; 157 Illustrations, color
  • Ilmumisaeg: 07-Jul-2021
  • Kirjastus: CRC Press
  • ISBN-10: 0367721805
  • ISBN-13: 9780367721800
"Developing Graphics Frameworks with Python and OpenGL shows you how to create software for rendering complete three-dimensional scenes. The authors explain the foundational theoretical concepts as well as the practical programming techniques that will enable you to create your own animated and interactive computer-generated worlds. You will learn how to combine the power of OpenGL, the most widely adopted cross-platform API for GPU programming, with the accessibility and versatility of the Python programming language. Topics you will explore include generating geometric shapes, transforming objects with matrices, applying image-based textures to surfaces, and lighting your scene. Advanced sections explain how to implement procedurally generated textures, post-processing effects, and shadow mapping. In addition to the sophisticated graphics framework you will develop throughout this book, with the foundational knowledge you will gain, you will be able to adapt and extend the framework to achieve even more spectacular graphical results"--

Developing Graphics Frameworks with Python and OpenGL shows you how to create software for rendering complete three-dimensional scenes. The authors explain the foundational theoretical concepts as well as the practical programming techniques that will enable you to create your own animated and interactive computer-generated worlds.

You will learn how to combine the power of OpenGL, the most widely adopted cross-platform API for GPU programming, with the accessibility and versatility of the Python programming language. Topics you will explore include generating geometric shapes, transforming objects with matrices, applying image-based textures to surfaces, and lighting your scene. Advanced sections explain how to implement procedurally generated textures, postprocessing effects, and shadow mapping. In addition to the sophisticated graphics framework you will develop throughout this book, with the foundational knowledge you will gain, you will be able to adapt and extend the framework to achieve even more spectacular graphical results.

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)
1.2.1 Application Stage
9(1)
1.2.2 Geometry Processing
10(2)
1.2.3 Rasterization
12(2)
1.2.4 Pixel Processing
14(3)
1.3 Setting Up A Development Environment
17(6)
1.3.1 Installing Python
17(2)
1.3.2 Python Packages
19(2)
1.3.3 Sublime Text
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)
2.2 Drawing A Point
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)
2.3 Drawing Shapes
46(18)
2.3.1 Using Vertex Buffers
46(3)
2.3.2 An Attribute Class
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)
2.4.2 A Uniform Class
65(2)
2.4.3 Applications and Animations
67(10)
2.5 Adding Interactivity
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)
3.2.1 Scaling
102(1)
3.2.2 Rotation
103(6)
3.2.3 Translation
109(3)
3.2.4 Projections
112(7)
3.2.5 Local Transformations
119(4)
3.3 A Matrix Class
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)
4.2 3D Objects
138(6)
4.2.1 Scene and Group
141(1)
4.2.2 Camera
142(1)
4.2.3 Mesh
143(1)
4.3 Geometry Objects
144(20)
4.3.1 Rectangles
145(2)
4.3.2 Boxes
147(3)
4.3.3 Polygons
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)
4.4 Material Objects
164(8)
4.4.1 Base Class
165(1)
4.4.2 Basic Materials
166(6)
4.5 Rendering Scenes With The Framework
172(5)
4.6 Custom Geometry And Material Objects
177(7)
4.7 Extra Components
184(8)
4.7.1 Axes and Grids
185(3)
4.7.2 Movement Rig
188(4)
4.8 Summary and Next Steps
192(1)
Chapter 5 Textures
193(74)
5.1 A Texture Class
194(7)
5.2 Texture Coordinates
201(5)
5.2.1 Rectangles
202(1)
5.2.2 Boxes
202(1)
5.2.3 Polygons
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)
5.7 Using Text in Scenes
228(19)
5.7.1 Rendering Text Images
228(4)
5.7.2 Billboarding
232(1)
5.7.2.1 Look-At Matrix
232(4)
5.7.2.2 Sprite Material
236(5)
5.7.3 Heads-Up Displays and Orthogonal Cameras
241(6)
5.8 Rendering Scenes to Textures
247(7)
5.9 Postprocessing
254(11)
5.10 Summary and Next Steps
265(2)
Chapter 6 Light and Shadow
267(64)
6.1 Introduction To Lighting
268(3)
6.2 Light Classes
271(3)
6.3 Normal Vectors
274(6)
6.3.1 Rectangles
274(1)
6.3.2 Boxes
275(1)
6.3.3 Polygons
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)
6.6 Extra Components
295(3)
6.7 Bump Mapping
298(4)
6.8 Bloom and Glow Effects
302(10)
6.9 Shadows
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
Lee Stemkoski is a professor of mathematics and computer science. He earned his Ph.D. in mathematics from Dartmouth College in 2006 and has been teaching at the college level since. His specialties are computer graphics, video game development, and virtual and augmented reality programming.

Michael Pascale is a software engineer interested in the foundations of computer science, programming languages, and emerging technologies. He earned his B.S. in Computer Science from Adelphi University in 2019. He strongly supports open source software and open access educational resources.