Computer Graphics: From Pixels to Programmable Graphics Hardware, 1st Edition (Hardback) book cover

Computer Graphics

From Pixels to Programmable Graphics Hardware, 1st Edition

By Alexey Boreskov, Evgeniy Shikin

Chapman and Hall/CRC

568 pages | 322 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781439867303
pub: 2013-10-25
SAVE ~$26.00
$130.00
$104.00
x
eBook (VitalSource) : 9780429068744
pub: 2013-10-25
from $65.00


FREE Standard Shipping!

Description

Complete Coverage of the Current Practice of Computer Graphics

Computer Graphics: From Pixels to Programmable Graphics Hardware explores all major areas of modern computer graphics, starting from basic mathematics and algorithms and concluding with OpenGL and real-time graphics. It gives students a firm foundation in today’s high-performance graphics.

Up-to-Date Techniques, Algorithms, and API

The book includes mathematical background on vectors and matrices as well as quaternions, splines, curves, and surfaces. It presents geometrical algorithms in 2D and 3D for spatial data structures using large data sets. Although the book is mainly based on OpenGL 3.3, it also covers tessellation in OpenGL 4.0, contains an overview of OpenGL ES 2.0, and discusses the new WebGL, which allows students to use OpenGL with shaders directly in their browser. In addition, the authors describe a variety of special effects, including procedural modeling and texturing, fractals, and non-photorealistic rendering. They also explain the fundamentals of the dominant language (OpenCL) and platform (CUDA) of GPGPUs.

Web Resource

On the book’s CRC Press web page, students can download many ready-to-use examples of C++ code demonstrating various effects. C++ wrappers for basic OpenGL entities, such as textures and programs, are also provided.

In-Depth Guidance on a Programmable Graphics Pipeline

Requiring only basic knowledge of analytic geometry, linear algebra, and C++, this text guides students through the OpenGL pipeline. Using one consistent example, it leads them step by step from simple rendering to animation to lighting and bumpmapping.

Key Features

  • Covers the main aspects of modern computer graphics
  • Explains how to create various special effects using OpenGL
  • Describes a wide range of current topics, such as tessellation, spherical harmonics, and geometric shaders
  • Contains practical exercises and examples as well as numerous illustrations, including several color images
  • Offers full, cross-platform source code and examples on the book’s CRC Press web page

Figure slides available upon qualifying course adoption

Table of Contents

Introduction: Basic Concepts

Coordinate spaces, transformations

Graphics pipeline

Working with the windowing system

Colors. Color models

Raster algorithms

Hidden surface removal

Lighting models and shading

Transforms in 2D

Vectors and matrices

Transforms in 2D

Basic linear transformations

Homogeneous coordinates

Geometric Algorithms in 2D

Line from two points

Classification of a point relative to the line

Classification of a circle relative to the line

Classification of an axis-aligned bounding box (AABB) relative to the line

Computing the area of triangle and polygon

Intersection of two lines

Intersection of two line segments

Closest point on the line to the given point

Distance from point to line segment

Checking whether the given polygon is convex

Check whether the point lies inside the given polygon

Clipping line segment to a convex polygon, Cyrus-Beck algorithm

Clipping a polygon: Sutherland-Hodgman algorithm

Clipping a polygon to a convex polygon

Barycentric coordinates

Transformations in 3D, Projections, Quaternions

3D vectors and matrices. Dot and vector (cross) products

Linear transformations—scale, reflection, rotation, and shear

Reflection relative to a plane

Rotation around an arbitrary vector (direction)

Euler transformation

Translation, affine transformation and homogeneous coordinates

Rigid-body transformation

Normal transformation

Projections

Coordinate systems in 3D, translations between different coordinate systems

Quaternions: Representation of orientation in 3D using quaternions, quaternion interpolation

Basic Raster Algorithms

Raster grid, connectivity of raster grid, 4-connectivity, and 8-connectivity

Bresenheim’s line algorithm

Bresenheim’s circle algorithm

Triangle filling

Flood fill algorithm

Color and Color Models

CIEXY Z color space

RGB color space

CMY and CMYK color spaces

HSV and HSL color spaces

Gamma correction

Y uv and Y CBCR color spaces

Perceptually uniform color spaces, L*u*v* and L*a*b* color spaces

sRGB color space

Basic freeglut and GLEW for OpenGL Rendering

freeglut initialization

Window creation

Processing events

Using the GLEW library

Wrapping freeglut in a C++ class

Hidden Surface Removal

Basic notions

Ray casting

z-buffer

Hierarchical z-buffer

Priority algorithms

Portals

Potentially visible sets (PVS), computing PVS via portals

Hardware occlusion queries and their usage

Modern OpenGL: The Beginning

History of OpenGL

Main concepts of OpenGL

Programmable pipeline

Our first OpenGL program

First OpenGL program using C++ classes

Parameter interpolation

Matrix operations

Rotating the object by mouse

Working with meshes

Working with textures

Instancing

Framebuffer object and rendering into a texture

Point sprite in OpenGL

Working with Large 2D/3D Data Sets

Bounding volumes

Regular grids

Nested (hierarchical) grids

Quad-trees and Oct-trees

kD-tree

Binary space partitioning (BSP) tree

Bounding volume hierarchy (BVH)

R-trees

Mixed structures

Curves and Surfaces: Geometric Modeling

Representation of curves and surfaces

Elements of differential geometry, tangent space, curvature

Bezier and Hermite curves and surfaces

Interpolation

Splines

Surfaces of revolution

Subdivision of curves and surfaces

Basics of Animation

Coordinates interpolation

Orientation interpolation

Key-frame animation

Skeletal animation

Path following

Lighting Models

Diffuse (Lambert) model

Phong model

Blinn-Phong model

Ward isotropic model

Minnaert lighting

Lommel-Seeliger lighting

Rim lighting

Distance attenuation

Reflection, Fresnel coefficient, and its approximations

Strauss lighting model

Anisotropic lighting

Bidirectional reflection distribution function (BRDF)

Oren-Nayar model

Cook-Torrance model

Ashikhmin-Shirley model

Image-based lighting (IBL)

Spherical harmonics and their usage for lighting

Advanced OpenGL

Implementation of lighting models

Geometry shaders

Transform feedback

Multiple render targets (MRT)

Uniform blocks and uniform buffers

Tessellation

OpenGL ES 2

WebGL

GPU Image Processing

Sampling, aliasing, filters

Sepia effect

Effects based on color transformations

Edge detect filters

Emboss filter

Blur filters, Gaussian blur, separable filters

Old-film effect

Sharpness filter

Image denoising, bilateral filter

Special Effects in OpenGL

Reflections

Volumetric/layered fog

Billboards, particle systems, soft particles

Bumpmapping

Reflection and refraction, environment mapping

Fur rendering

Parallax, relief and cone step mapping

Sky rendering, Perez all-weather model

Screen-space ambient occlusion (SSAO)

Modeling depth of field

High dynamic range (HDR) rendering

Realistic water rendering

Deferred rendering

Light prepass rendering

Ambient cubes

Reflective shadow maps

Splatting indirect illumination

Basics of GPGPU

What is GPGPU

Basics of OpenCL

Basics of CUDA

Basics of linear algebra in OpenCL

OpenCL—OpenGL interoperability

Elements of Procedural Texturing and Modeling

Fractals, Mandelbrot, and Julia sets

Fractal mountains

L-systems

Perlin noise, turbulence, fBm

Modeling marble, water, clouds with Perlin noise

Cellular textures

Non-Photorealistic Rendering

Cartoon rendering

Extended cartoon rendering

Gooch lighting model

Watercolor rendering

Bibliography

About the Series

Chapman & Hall/CRC Computer Graphics, Geometric Modeling, and Animation Series

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COM012000
COMPUTERS / Computer Graphics
COM012040
COMPUTERS / Programming / Games