ENGLISH

Introduction to Computer Graphics: Using OpenGL and Java

Book information

Publisher
Springer
Year
2023
ISBN
3031281349, 9783031281341, 9783031281358
Language
english
Format
PDF
Filesize
13 MB (13166127 bytes)
Series
Undergraduate Topics in Computer Science
Edition
3
Pages
482\476
Topic
Computers
Time added
2023-06-09 12:17:15

Description

A basic understanding of the key techniques in computer graphics can open the door to this exciting field and its many applications, including for video games and for augmented and virtual reality. This easy-to-follow textbook and reference introduces the fundamental concepts of computer graphics, integrating both technical background and theory with practical examples and applications throughout. Thoroughly revised and updated, this new edition continues to present a user-friendly approach to creating images and animations, complementing the expanded coverage of topics with usage of example programs and exercises. Topics and features: Contains pedagogical tools, including easy-to-understand example programs and end-of-chapter exercisesPresents a practical guide to basic computer graphics programming using the Open Graphics Library (OpenGL) and the widely used Java programming languageIncludes new and expanded content on the OpenGL graphics pipelines, shader programming, drawing basic objects using the OpenGL, three-dimensional modelling, quaternions, rasterisation, antialiasing and moreSupplies complete Java project examples as supplementary material This reader-friendly textbook is an essential tool for second-year undergraduate students and above, providing clear and concise explanations of the basic concepts of computer graphics. It will enable readers to immediately implement these concepts using the OpenGL and Java (with only elementary knowledge of the programming language). Prof. Dr.-Ing. Karsten Lehn works at the Faculty of Information Technology at Fachhochschule Dortmund, University of Applied Sciences and Arts. Prof. Dr. Merijam Gotzes is teaching at Hamm-Lippstadt University of Applied Sciences. Prof. Dr. Frank Klawonn is head of the Data Analysis and Pattern Recognition Laboratory at the Ostfalia University of Applied Sciences and heads the Biostatistics Research Group at the Helmholtz Centre for Infection Research. Preface to the Third Edition Acknowledgement Contents 1 Introduction 1.1 Application Fields 1.2 From the Real Scene to the Computer Generated Image 1.3 Rendering and Rendering Pipeline 1.4 Objectives of This Book and Recommended Reading Order for the Sections 1.5 Structure of This Book 1.6 Exercises References 2 The Open Graphics Library (OpenGL) 2.1 Graphics Programming Interfaces 2.2 General About the OpenGL 2.3 The OpenGL and Java 2.4 Profiles 2.5 OpenGL Graphics Pipelines 2.5.1 Vertex Processing 2.5.2 Vertex Post-Processing 2.5.3 Primitive Assembly 2.5.4 Rasterisation 2.5.5 Fragment Processing 2.5.6 Per-Fragment Operations 2.5.7 Framebuffer 2.6 Shaders 2.7 OpenGL Programming with JOGL 2.8 Example of a JOGL Program Without Shaders 2.9 Programming Shaders 2.9.1 Data Flow in the Programmable Pipeline 2.9.2 OpenGL and GLSL Versions 2.9.3 OpenGL Extensions 2.9.4 Functions of the GLSL 2.9.5 Building a GLSL Shader Program 2.10 Example of a JOGL Program Using GLSL Shaders 2.11 Efficiency of Different Drawing Methods 2.12 Exercises Exercises References 3 Basic Geometric Objects 3.1 Surface Modelling 3.2 Basic Geometric Objects in the OpenGL 3.2.1 Points 3.2.2 Lines 3.2.3 Triangles 3.2.4 Polygon Orientation and Filling 3.2.5 Polygons 3.2.6 Quadrilaterals 3.3 OpenGL Drawing Commands 3.3.1 Indexed Draw 3.3.2 Triangle Strips 3.3.3 Primitive Restart 3.3.4 Base Vertex and Instanced Rendering 3.3.5 Indirect Draw 3.3.6 More Drawing Commands and Example Project 3.4 Exercises References 4 Modelling Three-Dimensional Objects 4.1 From the Real World to the Model 4.2 Three-Dimensional Objects and Their Surfaces 4.3 Modelling Techniques 4.4 Modelling the Surface of a Cube in the OpenGL 4.5 Surfaces as Functions in Two Variables 4.5.1 Representation of Landscapes 4.6 Parametric Curves and Freeform Surfaces 4.6.1 Parametric Curves 4.6.2 Efficient Computation of Polynomials 4.6.3 Freeform Surfaces 4.7 Normal Vectors for Surfaces 4.8 Exercises References 5 Geometry Processing 5.1 Geometric Transformations in 2D 5.1.1 Homogeneous Coordinates 5.1.2 Applications of Transformations 5.1.3 Animation and Movements Using Transformations 5.1.4 Interpolators for Continuous Changes 5.2 Geometrical Transformations in 3D 5.2.1 Translations 5.2.2 Scalings 5.2.3 Rotations Around x-, y- and z-Axis 5.2.4 Calculation of a Transformation Matrix with a Linear System of Equations 5.3 Switch Between Two Coordinate Systems 5.4 Scene Graphs 5.4.1 Modelling 5.4.2 Animation and Movement 5.4.3 Matrix Stacks and Their Application in the OpenGL 5.5 Arbitrary Rotations in 3D: Euler Angles, Gimbal Lock, and Quaternions 5.5.1 Rotation Around Any Axis 5.6 Eulerian Angles and Gimbal Lock 5.6.1 Quaternions 5.7 Clipping Volume 5.8 Orthogonal and Perspective Projections 5.9 Perspective Projection and Clipping Volume in the OpenGL 5.10 Viewing Pipeline: Coordinate System Change of the Graphical Pipeline 5.11 Transformations of the Normal Vectors 5.12 Transformations of the Viewing Pipeline in the OpenGL 5.13 Exercises References 6 Greyscale and Colour Representation 6.1 Greyscale Representation and Intensities 6.2 Colour Models and Colour Spaces 6.3 Colours in the OpenGL 6.4 Colour Interpolation 6.5 Exercises References 7 Rasterisation 7.1 Vector Graphics and Raster Graphics 7.2 Rasterisation in the Graphics Pipeline and Fragments 7.3 Rasterisation of Lines 7.3.1 Lines and Raster Graphics 7.3.2 Midpoint Algorithm for Lines According to Bresenham 7.3.3 Structural Algorithm for Lines According to Brons 7.3.4 Midpoint Algorithm for Circles 7.3.5 Drawing Arbitrary Curves 7.4 Parameters for Drawing Lines 7.4.1 Fragment Density and Line Style 7.4.2 Line Styles in the OpenGL 7.4.3 Drawing Thick Lines 7.4.4 Line Thickness in the OpenGL 7.5 Rasterisation and Filling of Areas 7.5.1 Odd Parity Rule 7.5.2 Scan Line Technique 7.5.3 Polygon Rasterisation Algorithm According to Pineda 7.5.4 Interpolation of Associated Data 7.5.5 Rasterising and Filling Polygons in the OpenGL 7.6 Aliasing Effect and Antialiasing 7.6.1 Examples of the Aliasing Effect 7.6.2 Antialiasing 7.6.3 Pre-Filtering 7.6.4 Pre-Filtering in the OpenGL 7.6.5 Post-Filtering 7.6.6 Post-Filtering Algorithms 7.6.7 Sample Arrangements for Post-Filtering 7.6.8 Post-Filtering in the OpenGL 7.7 Exercises References 8 Visibility Considerations 8.1 Line Clipping in 2D 8.1.1 Cohen–Sutherland Clipping Algorithmus 8.1.2 Cyrus–Beck Clipping Algorithmus 8.2 Image-Space and Object-Space Methods 8.2.1 Backface Culling 8.2.2 Partitioning Methods 8.2.3 The Depth Buffer Algorithm 8.2.4 Scan-Line Algorithms 8.2.5 Priority Algorithms 8.3 Exercises References 9 Lighting Models 9.1 Light Sources of Local Illumination 9.2 Reflections by Phong 9.3 The Lighting Model According to Phong in the OpenGL 9.4 Shading 9.5 Shading in the OpenGL 9.6 Shadows 9.7 Opacity and Transparency 9.8 Radiosity Model 9.9 Raycasting and Raytracing 9.10 Exercises References 10 Textures 10.1 Texturing Process 10.1.1 Mipmap and Level of Detail: Variety in Miniature 10.1.2 Applications of Textures: Approximation of Light, Reflection, Shadow, Opacity and Geometry 10.2 Textures in the OpenGL 10.3 Exercises References 11 Special Effects and Virtual Reality 11.1 Factors for Good Virtual Reality Applications 11.2 Fog 11.3 Fog in the OpenGL 11.4 Particle Systems 11.5 A Particle System in the OpenGL 11.6 Dynamic Surfaces 11.7 Interaction and Object Selection 11.8 Object Selection in the OpenGL 11.9 Collision Detection 11.10 Collision Detection in the OpenGL 11.11 Auralisation of Acoustic Scenes 11.11.1 Acoustic Scenes 11.11.2 Localisability 11.11.3 Simulation 11.11.4 Reproduction Systems 11.11.5 Ambisonics 11.11.6 Interfaces and Standards 11.12 Spatial Vision and Stereoscopy 11.12.1 Perceptual Aspects of Spatial Vision 11.12.2 Stereoscopy Output Techniques 11.12.3 Stereoscopic Projections 11.12.4 Stereoscopy in the OpenGL 11.13 Exercises References Appendix A Web References Appendix Index

Similar books