Developing Graphics Frameworks With Java and OpenGL
معرفی کتاب «Developing Graphics Frameworks With Java and OpenGL» نوشتهٔ Lee Stemkoski, James Cona، منتشرشده توسط نشر CRC Press در سال 2022. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Developing Graphics Frameworks With Java and OpenGL» در دستهٔ بدون دستهبندی قرار دارد.
Developing Graphics Frameworks with Java and OpenGL shows you how to create software for rendering complete three-dimensional (3D) scenes. The book explains 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 application programming interface (API) for graphics processing unit (GPU) programming, with the accessibility and versatility of the Java programming language. Topics in this book include generating geometric shapes, transforming objects with matrices, applying image-based textures to surfaces, and lighting a scene. Advanced sections explain how to implement procedurally generated textures, postprocessing effects, and shadow mapping. In addition to the sophisticated graphics framework discussed throughout the book, you will gain a foundational knowledge that will allow you to adapt and extend that framework, leading to even more spectacular graphical results. Author bios 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. James Cona is an up-and-coming software engineer who studied computer science at Adelphi University. Some of his specific interests include music, video game programming, 3D graphics, artificial intelligence, and clear and efficient software development in general. Developing Graphics Frameworks with Java 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. Cover 1 Half Title 2 Title Page 4 Copyright Page 5 Contents 6 About the Authors 10 Chapter 1: Introduction to Computer Graphics 12 1.1. CORE CONCEPTS AND VOCABULARY 13 1.2. THE GRAPHICS PIPELINE 18 1.2.1. Application Stage 18 1.2.2. Geometry Processing 19 1.2.3. Rasterization 21 1.2.4. Pixel Processing 23 1.3. SETTING UP A DEVELOPMENT ENVIRONMENT 25 1.4. SUMMARY AND NEXT STEPS 28 Chapter 2: Introduction to LWJGL and OpenGL 30 2.1. CREATING WINDOWS WITH LWJGL 30 2.2. DRAWING A POINT 36 2.2.1. OpenGL Shading Language 36 2.2.2. Compiling GPU Programs 39 2.2.3. Rendering in the Application 44 2.3. DRAWING SHAPES 47 2.3.1. Using Vertex Buffers 47 2.3.2. An Attribute Class 49 2.3.3. Hexagons, Triangles, and Squares 51 2.3.4. Passing Data between Shaders 58 2.4. WORKING WITH UNIFORM DATA 62 2.4.1. Introduction to Uniforms 62 2.4.2. A Uniform Class 63 2.4.3. Applications and Animations 66 2.5. ADDING INTERACTIVITY 74 2.5.1. Keyboard Input with LWJGL 75 2.5.2. Incorporating with Graphics Programs 78 2.6. SUMMARY AND NEXT STEPS 79 Chapter 3: Matrix Algebra and Transformations 80 3.1. INTRODUCTION TO VECTORS AND MATRICES 80 3.1.1. Vector Definitions and Operations 81 3.1.2. Linear Transformations and Matrices 84 3.1.3. Vectors and Matrices in Higher Dimensions 93 3.2. GEOMETRIC TRANSFORMATIONS 96 3.2.1. Scaling 96 3.2.2. Rotation 97 3.2.3. Translation 101 3.2.4. Projections 104 3.2.5. Local Transformations 109 3.3. A MATRIX CLASS 112 3.4. INCORPORATING WITH GRAPHICS PROGRAMS 121 3.5. SUMMARY AND NEXT STEPS 127 Chapter 4: A Scene Graph Framework 128 4.1. OVERVIEW OF CLASS STRUCTURE 130 4.2. 3D OBJECTS 132 4.2.1. Scene and Group 135 4.2.2. Camera 136 4.2.3. Mesh 137 4.3. GEOMETRY OBJECTS 139 4.3.1. Rectangles 140 4.3.2. Boxes 142 4.3.3. Polygons 145 4.3.4. Parametric Surfaces and Planes 147 4.3.5. Spheres and Related Surfaces 151 4.3.6. Cylinders and Related Surfaces 153 4.4. MATERIAL OBJECTS 159 4.4.1. Material Class 160 4.4.2. Basic Materials 163 4.5. RENDERING SCENES WITH THE FRAMEWORK 167 4.6. CUSTOM GEOMETRY AND MATERIAL OBJECTS 172 4.7. EXTRA COMPONENTS 177 4.7.1. Axes and Grids 178 4.7.2. Movement Rig 182 4.8. SUMMARY AND NEXT STEPS 185 Chapter 5: Textures 188 5.1. A TEXTURE CLASS 188 5.2. TEXTURE COORDINATES 195 5.2.1. Rectangles 195 5.2.2. Boxes 196 5.2.3. Polygons 197 5.2.4. Parametric Surfaces 198 5.3. USING TEXTURES IN SHADERS 200 5.4. RENDERING SCENES WITH TEXTURES 204 5.5. ANIMATED EFFECTS WITH CUSTOM SHADERS 207 5.6. PROCEDURALLY GENERATED TEXTURES 212 5.7. USING TEXT IN SCENES 217 5.7.1. Billboarding 217 5.7.2. Heads-Up Displays and Orthogonal Cameras 226 5.8. RENDERING SCENES TO TEXTURES 231 5.9. POSTPROCESSING 237 5.10. SUMMARY AND NEXT STEPS 247 Chapter 6: Light and Shadow 248 6.1. INTRODUCTION TO LIGHTING 248 6.2. LIGHT CLASSES 252 6.3. NORMAL VECTORS 255 6.3.1. Rectangles 255 6.3.2. Boxes 255 6.3.3. Polygons 256 6.3.4. Parametric Surfaces 257 6.4. USING LIGHTS IN SHADERS 260 6.4.1. Structs and Uniforms 261 6.4.2. Light-Based Materials 263 6.5. RENDERING SCENES WITH LIGHTS 270 6.6. EXTRA COMPONENTS 273 6.7. BUMP MAPPING 276 6.8. BLOOM AND GLOW EFFECTS 280 6.9. SHADOWS 288 6.9.1. Theoretical Background 288 6.9.2. Adding Shadows to the Framework 292 6.10. SUMMARY AND NEXT STEPS 304 INDEX 306 Rasterization;,Pixel,Processing;,Scaling;,Local,Transformations;,Projections Rasterization,Pixel Processing,Scaling,Local Transformations,Projections "Developing Graphics Frameworks with Java 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 Java 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"-- Provided by publisher.
دانلود کتاب Developing Graphics Frameworks With Java and OpenGL