Developing Graphics Frameworks with Java and OpenGL

Developing Graphics Frameworks with Java and OpenGL

by Lee Stemkoski, James Cona
Developing Graphics Frameworks with Java and OpenGL

Developing Graphics Frameworks with Java and OpenGL

by Lee Stemkoski, James Cona

Paperback

$74.95 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores

Related collections and offers


Overview

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.


Product Details

ISBN-13: 9780367720698
Publisher: CRC Press
Publication date: 06/22/2022
Pages: 308
Product dimensions: 7.00(w) x 10.00(h) x (d)

About the Author

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.

Table of Contents

About the Authors ix

Chapter 1 Introduction to Computer Graphics 1

1.1 Core Concepts and Vocabulary 2

1.2 The Graphics Pipeline 7

1.2.1 Application Stage 7

1.2.2 Geometry Processing 8

1.2.3 Rasterization 10

1.2.4 Pixel Processing 12

1.3 Setting Up a Development Environment 14

1.4 Summary and Next Steps 17

Chapter 2 Introduction Lo LWJGL and OpenGL 19

2.1 Creating Windows with LWJGL 19

2.2 Drawing a Point 25

2.2.1 OpenGL Shading Language 25

2.2.2 Compiling GPU Programs 28

2.2.3 Rendering in the Application 33

2.3 Drawing Shapes 36

2.3.1 Using Vertex Buffers 36

2.3.2 An Attribute Class 38

2.3.3 Hexagons, Triangles, and Squares 40

2.3.4 Passing Data between Shaders 47

2.4 Working with Uniform Data 51

2.4.1 Introduction to Uniforms 51

2.4.2 A Uniform Class 52

2.4.3 Applications and Animations 55

2.5 Adding Interactivity 63

2.5.1 Keyboard Input with LWJGL 64

2.5.2 Incorporating with Graphics Programs 67

2.6 Summary and Next Steps 68

Chapter 3 Matrix Algebra and Tansformations 69

3.1 Introduction to Vectors and Matrices 69

3.1.1 Vector Definitions and Operations 70

3.1.2 Linear Transformations and Matrices 73

3.1.3 Vectors and Matrices in Higher Dimensions 82

3.2 Geometric Transformations 85

3.2.1 Scaling 85

3.2.2 Rotation 86

3.2.3 Translation 90

3.2.4 Projections 93

3.2.5 Local Transformations 98

3.3 A Matrix Class 101

3.4 Incorporating with Graphics Programs 110

3.5 Summary and Next Steps 116

Chapter 4 A Scene Graph Framework 117

4.1 Overview of Class Structure 119

4.2 3D Objects 121

4.2.1 Scene and Group 124

4.2.2 Camera 125

4.2.3 Mesh 126

4.3 Geometry Objects 128

4.3.1 Rectangles 129

4.3.2 Boxes 131

4.3.3 Polygons 134

4.3.4 Parametric Surfaces and Planes 136

4.3.5 Spheres and Related Surfaces 140

4.3.6 Cylinders and Related Surfaces 142

4.4 Material Objects 148

4.4.1 Material Class 149

4.4.2 Basic Materials 152

4.5 Rendering Scenes with the Framework 156

4.6 Custom Geometry and Material Objects 161

4.7 Extra Components 166

4.7.1 Axes and Grids 167

4.7.2 Movement Rig 171

4.8 Summary and Next Steps 174

Chapter 5 Textures 177

5.1 A Texture Class 177

5.2 Texture Coordinates 184

5.2.1 Rectangles 184

5.2.2 Boxes 185

5.2.3 Polygons 186

5.2.4 Parametric Surfaces 187

5.3 Using Textures in Shaders 189

5.4 Rendering Scenes with Textures 193

5.5 Animated Effects with Custom Shaders 196

5.6 Procedurally Generated Textures 201

5.7 Using Text in Scenes 206

5.7.1 Billboarding 206

5.7.2 Heads-Up Displays and Orthogonal Cameras 215

5.8 Rendering Scenes to Textures 220

5.9 Postprocessing 226

5.10 Summary and Next Steps 236

Chapter 6 Light and Shadow 237

6.1 Introduction to Lighting 237

6.2 Light Classes 241

6.3 Normal Vectors 244

6.3.1 Rectangles 244

6.3.2 Boxes 244

6.3.3 Polygons 245

6.3.4 Parametric Surfaces 246

6.4 Using Lights in Shaders 249

6.4.1 Structs and Uniforms 250

6.4.2 Light-Based Materials 252

6.5 Rendering Scenes with Lights 259

6.6 Extra Components 262

6.7 Bump Mapping 265

6.8 Bloom and Glow Effects 269

6.9 Shadows 277

6.9.1 Theoretical Background 277

6.9.2 Adding Shadows to the Framework 281

6.10 Summary and Next Steps 293

Index 295

From the B&N Reads Blog

Customer Reviews