Chapter I
Introduction
All class materials including this PowerPoint file are available at
https://github.com/medialab-ku/openGLESbook
Introduction to Computer Graphics with OpenGL ES (J. Han)
3D Computer Graphics
▪ Three-dimensional (3D) computer graphics takes as input 3D representations
of objects and performs various calculations on them to produce images called
frames.
▪ An illusion of movement is generated on the screen by displaying a sequence
of changing frames.
▪ If the frames are produced online, we call it real-time graphics.
▪ More than 30 frames per second (fps)
▪ Games, virtual/augmented reality, and interactive user interfaces (UIs)
▪ On the other hand, visual effects in films often take as long as minutes or hours
for a single frame. In return, we may obtain photorealistic images.
▪ The algorithms and techniques adopted in real-time graphics are fairly different
from those in off-line graphics.
▪ This class is on real-time graphics.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-2
Computer Graphics Production
▪ Major steps in computer graphics production
▪ Graphic artists and programmers are the key players.
▪ Modeling, rigging, and animation are off-line tasks performed by the
artists.
▪ At run time, computer programs replay the animation and perform
rendering and post-processing.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-3
Modeling
▪ A model is referred to as a computer representation of an object, and modeling
is the process of creating the objects comprising the virtual scenes.
▪ Almost all 3D models in real-time graphics are represented in polygon meshes.
▪ The scope of modeling includes creating textures. The simplest form of a
texture is an image that is pasted on an object's surface at run time.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-4
Rigging
▪ The baseball player should be able to hit a ball, run, and slide into a base, i.e.,
we need to animate the player.
▪ For this purpose, we usually specify the skeleton or rig of the player. We then
define how the skeletal motion deforms the player’s polygon mesh such that,
for example, the polygons of the arm are made to move when the arm bone is
lifted. This process is often referred to as rigging.
skeleton skeleton embedded in the mesh animated mesh
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-5
Animation
▪ The graphics artist creates a sequence of skeletal motions. At run time, the
skeletal motions are replayed and the polygon mesh is animated over frames.
▪ The artists perform modeling, rigging, and animation in an off-line mode.
Dedicated programs such as Autodesk 3ds Max and Autodesk Maya are
popularly used.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-6
Rendering
▪ Rendering is the process of generating a 2D image from a 3D scene. The
image makes up a frame.
▪ Realistic rendering is a complicated process, in which lighting as well as
texturing is an essential component. For example, the shadow shown below is
a result of lighting.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-7
Post-processing
▪ As an optional step, post-processing uses a set of special operations to give
additional effects to the rendered images.
▪ An example is motion blur. When a camera captures a scene, the resulting
image represents the scene over a short period of time. Consequently, rapidly
moving objects may result in motion blur.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-8
Graphics API
▪ Unlike modeling, rigging, and off-line animation made by artists, run-time
animation, rendering, and post-processing are by an application program.
▪ In games, the application is typically built upon a game engine. A game engine
is a development tool that provides a suite of indispensable modules for
animation, rendering, and post-processing.
▪ In general, a game engine is built upon 3D graphics APIs such as Direct3D and
OpenGL. OpenGL ES (OpenGL for Embedded Systems) is a 3D API for
handheld and embedded devices and is defined as a subset of OpenGL.
Introduction to Computer Graphics with OpenGL ES (J. Han) 1-9