Skip to main content
main-content
Top

About this book

This book is an essential tool for second-year undergraduate students and above, providing clear and concise explanations of the basic concepts of computer graphics, and enabling the reader to immediately implement these concepts in Java 2D and/or 3D with only elementary knowledge of the programming language. Features: provides an ideal, self-contained introduction to computer graphics, with theory and practice presented in integrated combination; presents a practical guide to basic computer graphics programming using Java 2D and 3D; includes new and expanded content on the integration of text in 3D, particle systems, billboard behaviours, dynamic surfaces, the concept of level of detail, and the use of functions of two variables for surface modelling; contains many pedagogical tools, including numerous easy-to-understand example programs and end-of-chapter exercises; supplies useful supplementary material, including additional exercises, solutions, and program examples, at an associated website.

Table of Contents

1. Introduction

Abstract
This introductory Chapter provides a brief overview of the application fields of computer graphics and describes the rendering pipeline for creating an image from a model.
Frank Klawonn

2. Basic Principles of Two-Dimensional Graphics

Abstract
Basic geometric 2D-objects like points, lines, rectangles, polygons, circles and ellipses are introduced and geometric transformations for positioning, transforming and animating these geometric objects are explained. The concept of homogeneous coordinates, crucial for carrying out geometric transformations efficiently in computer graphics, is defined for two-dimensional geometry. Interpolators are a general technique for animation in computer graphics and various examples for interpolators are illustrated in this Chapter. A brief introduction to Java 2D is given and example programs and implementations help one to better understand the concepts and methods from a practical point of view.
Frank Klawonn

3. Drawing Lines and Curves

Abstract
Drawing lines and curves on pixel graphic devices needs special attention in computer graphics. Algorithmic aspects of drawing lines and curves, especially the midpoint or Bresenham algorithm, are highlighted in this Chapter as well techniques for antialiasing to avoid staircasing effects. Examples in Java 2D are provided for the use of the techniques.
Frank Klawonn

4. Areas, Text and Colours

Abstract
Various additional aspects of 2D graphics are the topic of this Chapter. Techniques for filling areas with colours and textures are explained. Double buffering is a method that is needed for animations. Adding text to graphics needs is a topic of its own and the basic concepts are introduced. The transition from black-and-white to grey scale and to colour images requires the definition of colour models. Models like RGB, CMY(K), YIQ, HSV and HLS are introduced. Interpolators for colours provide an example for the use and application of a colour model. Java 2D example programs elucidate the implementation of the concepts introduced in this Chapter.
Frank Klawonn

5. Basic Principles of Three-Dimensional Graphics

Abstract
Basic concepts like homogeneous coordinates, elementary geometric objects and geometric transformations that were introduced in the context of two-dimensional graphics are now extended to 3D models. Scenegraphs are an important method for modelling 3D scenes in a structured way and allow efficient computations for rendering. Interpolators are used for simple animations in 3D scenes. Projection techniques for the representation of a 3D scene on a flat screen are described. Java 3D example programs for the introduced concepts are provided.
Frank Klawonn

6. Modelling Three-Dimensional Objects

Abstract
Modelling techniques for 3D objects and surfaces are the topic of this Chapter. Models like voxels, constructive solid geometry (CSG), sweep representation, functions of two variables and parametric curves like B-splines and NURBS are introduced. Tesselation with triangles of a 3D surface is a basic technique for rendering in computer graphics. Different resolutions for the tesselation are used to minimise computations and optimise the graphical representation for the LOD concept (level of detail), which chooses the resolution depending on the position of the viewer of the scene. Text is a special type of object in 3D scenes, which needs special attention. Java 3D programs illustrate basic concepts introduced in this Chapter.
Frank Klawonn

7. Visible Surface Determination

Abstract
In order to display a scene from a 3D virtual world on a screen, the objects that are visible in the scene need to be determined. This includes clipping—removing objects that are outside the view in general—and visible and hidden surface determination, i.e. identifying objects that are visible in principle, but might be covered from view by other objects. Algorithms like the z-buffer algorithm and ray tracing are explained.
Frank Klawonn

8. Illumination and Shading

Abstract
Modelling illumination and shading is essential for 3D scenes to obtain realistic images. Basic notions for illumination and shading like different light sources, reflection of light, shadows, transparent objects and textures on surfaces are explained. Apart from the standard illumination techniques, the radiosity model and ray tracing are introduced. The use of illumination and shading within Java 3D is demonstrated by numerous Java 3D examples.
Frank Klawonn

9. Special Effects and Virtual Reality

Abstract
This Chapter is devoted to selected special effects in computer graphics like fog, particle systems or dynamic surfaces. It also introduces advanced techniques like interaction or collision detection as well as stereoscopic viewing, which is needed for virtual reality applications. Java 3D examples are provided to demonstrate the concepts.
Frank Klawonn
Additional information