وبلاگ بلیان

Computer Graphics Programming: In OpenGL with Java

معرفی کتاب «Computer Graphics Programming: In OpenGL with Java» نوشتهٔ V Scott Gordon; John Clevenger, (Professor of Computer science)، منتشرشده توسط نشر Mercury Learning and Information در سال 2017. این کتاب در 866 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Computer Graphics Programming: In OpenGL with Java» در دستهٔ بدون دسته‌بندی قرار دارد.

This book is appropriate for both the computer science undergraduate course in 3D graphics programming using OpenGL and for professionals who are interested in mastering 3D graphics skills. It has been designed in a 4-color, "teach-yourself" format with numerous examples that the reader can run just as presented. The book is unique because it teaches OpenGL programming in Java, using JOGL - a standard Java "wrapper" for OpenGL's native C calls. Includes companion files with source code and images Halftitle 2 Title Page 4 Copyright 5 Contents 6 Preface 10 Intended Audience 11 How to Use This Book 12 Acknowledgments 13 About the Authors 14 Chapter 1 Getting Started 16 1.1 Languages and Libraries 16 1.1.1 Java 17 1.1.2 OpenGL/GLSL 17 1.1.3 JOGL 17 1.1.4 graphicslib3D 18 1.2 Installation and Configuration 18 1.2.1 Installing Java 18 1.2.2 Installing OpenGL/GLSL 18 1.2.3 Installing JOGL 18 1.2.4 Installing graphicslib3D 19 Chapter 2 JOGL and the OpenGL Graphics Pipeline 21 2.1 The OpenGL Pipeline 22 2.1.1 Java/JOGL Application 23 2.1.2 Vertex and Fragment Shaders 26 2.1.3 Tessellation 30 2.1.4 Geometry Shader 31 2.1.5 Rasterization 32 2.1.6 Fragment Shader 33 2.1.7 Pixel Operations 35 2.2 Detecting OpenGL and GLSL Errors 36 2.3 Reading GLSL Source Code from Files 40 2.4 Building Objects from Vertices 41 2.5 Animating a Scene 42 Chapter 3 Mathematical Foundations 47 3.1 3D Coordinate Systems 48 3.2 Points 48 3.3 Matrices 48 3.4 Transformation Matrices 51 3.4.1 Translation 51 3.4.2 Scaling 52 3.4.3 Rotation 53 3.5 Vectors 54 3.5.1 Uses for Dot Product 56 3.5.2 Uses for Cross Product 57 3.6 Local and World Space 57 3.7 Eye Space and the Synthetic Camera 58 3.8 Projection Matrices 61 3.8.1 The Perspective Projection Matrix 61 3.8.2 The Orthographic Projection Matrix 63 3.9 Look-At Matrix 65 3.10 GLSL Functions for Building Matrix Transforms 66 Chapter 4 Managing 3D Graphics Data 70 4.1 Buffers & Vertex Attributes 71 4.2 Uniform Variables 73 4.3 Interpolation of Vertex Attributes 74 4.4 Model-View and Perspective Matrices 76 4.5 Our First 3D Program – a 3D Cube 77 4.6 Rendering Multiple Copies of an Object 86 4.6.1 Instancing 87 4.7 Rendering Multiple Different Models in a Scene 90 4.8 Matrix Stacks 93 4.9 Combating “Z-Fighting” Artifacts 98 4.10 Other Options for Primitives 99 4.11 Back-Face Culling 101 Chapter 5 Texture Mapping 106 5.1 Loading Texture Image Files 107 5.2 Texture Coordinates 108 5.3 Creating a Texture Object 110 5.4 Constructing Texture Coordinates 111 5.5 Loading Texture Coordinates into Buffers 112 5.6 Using the Texture in a Shader: Sampler Variables and Texture Units 112 5.7 Texture Mapping: Example Program 113 5.8 Mipmapping 116 5.9 Anisotropic Filtering 121 5.10 Wrapping and Tiling 123 5.11 Perspective Distortion 124 5.12 Loading Texture Image Files Using Java AWT Classes 125 Chapter 6 3D Models 130 6.1 Procedural Models – Building a Sphere 130 6.2 OpenGL Indexing – Building a Torus 138 6.2.1 The Torus 138 6.2.2 Indexing in OpenGL 139 6.3 Loading Externally Produced Models 143 Chapter 7 Lighting 154 7.1 Lighting Models 154 7.2 Lights 155 7.3 Materials 159 7.4 ADS Lighting Computations 160 7.5 Implementing ADS Lighting 163 7.5.1 Gouraud Shading 164 7.5.2 Phong Shading 171 7.6 Combining Lighting and Textures 176 Chapter 8 Shadows 182 8.1 The Importance of Shadows 182 8.2 Projective Shadows 183 8.3 Shadow Volumes 184 8.4 Shadow Mapping 185 8.4.1 Shadow Mapping (PASS ONE) – “Draw” Objects from Light Position 186 8.4.2 Shadow Mapping (Intermediate Step) – Copying the Z-Buffer to a Texture 187 8.4.3 Shadow Mapping (PASS TWO) – Rendering the Scene with Shadows 188 8.5 A Shadow Mapping Example 191 8.6 Shadow Mapping Artifacts 197 Chapter 9 Sky and Backgrounds 203 9.1 Skyboxes 203 9.2 Skydomes 206 9.3 Implementing a Skybox 207 9.3.1 Building a Skybox from Scratch 207 9.3.2 Using OpenGL Cube Maps 210 9.4 Environment Mapping 214 Chapter 10 Enhancing Surface Detail 220 10.1 Bump Mapping 220 10.2 Normal Mapping 222 10.3 Height Mapping 230 Chapter 11 Parametric Surfaces 236 11.1 Quadratic Bézier Curves 236 11.2 Cubic Bézier Curves 238 11.3 Quadratic Bézier Surfaces 241 11.4 Cubic Bézier Surfaces 243 Chapter 12 Tessellation 247 12.1 Tessellation in OpenGL 247 12.2 Tessellation for Bézier Surfaces 252 12.3 Tessellation for Terrain/Height Maps 258 12.4 Controlling Level of Detail (LOD) 265 Chapter 13 Geometry Shaders 270 13.1 Per-Primitive Processing in OpenGL 270 13.2 Altering Primitives 271 13.3 Deleting Primitives 276 13.4 Adding Primitives 277 Chapter 14 Other Techniques 281 14.1 Fog 281 14.2 Compositing/Blending/Transparency 283 14.3 User-Defined Clipping Planes 289 14.4 3D Textures 291 14.5 Noise 296 14.6 Noise Application – Marble 302 14.7 Noise Application – Wood 304 14.8 Noise Application – Clouds 308 14.9 Noise Application – Special Effects 312 Index 317 With numerous examples that the reader can run just as presented, this book is appropriate for both the computer science undergraduate course in 3D graphics programming using OpenGL and for professionals who are interested in mastering 3D graphics skills. -- Edited summary from book
دانلود کتاب Computer Graphics Programming: In OpenGL with Java