Computer Graphics - United International College

Download Report

Transcript Computer Graphics - United International College

Computer Graphics
Dr. Amy Zhang
Assistant Professor of
Computer Science
United International College
1
Welcome!




Applications
Introductions
What is computer graphics?
OpenGL and GLUT Overview
2
Applications




Movies and games
Visualization

techniques for creating images, diagrams, or animations to
communicate a message.
Digital photography
Computer aided design (CAD)

the use of computer technology for the design of objects, real or
virtual.
3



Virtual reality

a technology which allows a user to interact with a computersimulated environment, whether that environment is a simulation of
the real world or an imaginary world.
Augmented reality

a live direct or indirect view of a physical real-world environment
whose elements are merged with (or augmented by) virtual
computer-generated imagery - creating a mixed reality.
Art
4
Movies & Games
http://v.ku6.com/show/NzTgFbaxHf7FtACc.html
http://v.youku.com/v_show/id_XMTExMTAyMjY4.html
5
Visualization
http://www.earthol.com/
6
Digital Photography
http://www.easypano.com/virtual-tour-gallery.html#
7
Computer Aided Design (CAD)
8
Virtual and Augmented Reality
v.zol.com.cn/video62155.html
9
Art
“Contact Water”
Taisuke Murakami, 2001
Steven Parente
http://www.alohablooms.com/atomica1.html
Artificial Evolution for Computer Graphics
Karl Sims, SIGGRAPH ’91
10
What is Computer Graphics?


Computer graphics

Computer graphics deals with all aspects of creating images with a
computer
Graphics

often combine text, illustration, and color, visual presentations on
surfaces, e.g. a wall, canvas, computer screen, paper, or stone to
brand, inform, illustrate, or entertain.

Examples: photographs, drawings, line art, graphs, diagrams,
typography, numbers, symbols, geometric designs, maps,
engineering drawings, etc.
11
General concepts


Image

an artifact, usually two-dimensional, that has a similar appearance to some
subject—usually a physical object or a person.

They may be captured by optical devices—such as cameras, mirrors,
lenses, telescopes, microscopes, etc. and natural objects and phenomena,
such as the human eye or water surfaces.

A digital image is a representation of a two-dimensional image using ones
and zeros (binary).
Pixel

the smallest piece of information in an image.

normally arranged in a regular 2-dimensional grid, and are often
represented using dots or squares.

The intensity of each pixel is variable; in color systems, each pixel
has typically three components such as red, green, and blue.
12


Rendering

the process of generating an image from a model, by means of
computer programs, is also used to describe the process of
calculating effects in a video editing file to produce final video
output.
Model

a description of 3 dimensional objects in a strictly defined
language or data structure. It would contain geometry, viewpoint,
texture, lighting, and shading information.
13

Animation

the rapid display of a sequence of images of 2-D or 3-D artwork or
model positions in order to create an illusion of movement.
14
The graphics process

Process to simulate interaction of light and
matter
15
1.Modeling


Vertex
Polygon

a plane figure that is bounded by a closed
path or circuit, composed of a finite
sequence of straight line segments
Vertex
Surface
Model
16
Graphical Models

Geometric




2D and 3D objects
 Triangles, quadrilaterals, polygons
 Spheres, cones, boxes
Surface characteristics
 Color
 Texture
Composite objects
 Objects and their relationships to each other
Lighting, shading, animation, fog, etc.
17
The basic idea


Describe an object using surfaces, which are polygons

Triangles, quadrilaterals, whatever

Important thing is that they are flat

They must also be convex
Provide points in counterclock-wise order

From the visible side
18
2.Transformations

Scaling

Translation

Rotation

Skew (Shear)
1 0 d x 
0 1 0 


0 0 1 
19
3.Texturing


Texture - A bitmap image applied to a surface in computer graphics
Make 3D objects realistic
without texture
with texture
20

Texture/Displacement/Bump Map
21
4.Viewing and projections


Central projection
Parallel projection
22
5.Light and Color
23
6. Illumination Models
24
7. Shading models
25
Rasterization

Conversion of 3D model to 2D image



Projection
Determine pixel
Determine color
26
8.Ray Tracing

Back tracing the ray coming into the viewer’s
eye
27
9. Curves & Surfaces


Free shape control/animation
Less storage
28
Animation
29
OpenGL and
GLUT Overview
30
What Is OpenGL?

Graphics rendering API



high-quality color images composed of
geometric and image primitives
window system independent
operating system independent
31
OpenGL as a
Renderer

Geometric primitives


points, lines and polygons
Image Primitives


images and bitmaps
separate pipeline for images and geometry


linked through texture mapping
Rendering depends on state

colors, materials, light sources, etc.
32
Preliminaries

Headers Files





Libraries


#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
glut.h automatically include the others
gult3d.lib, glut32.dll
Enumerated Types

OpenGL defines numerous types for
compatibility

GLfloat, GLint, GLenum, etc.
33
Compilation on
Windows





Get glut.h, glut32.lib, glut32.dll from web
Create a console application
Store glut.h in Additional include directory
Add opengl32.lib, glut32.lib to project
settings (under link tab) and store them in
Additional library directory
Add glut32.dll to c:/windows/system32
34
GLUT Basics

Application Structure



Configure and open window
Initialize OpenGL state
Register input callback functions




render
resize
input: keyboard, mouse, etc.
Enter event processing loop
35
Sample Program
void main( int argc, char** argv )
{
int mode = GLUT_RGB|GLUT_DOUBLE;
glutInitDisplayMode( mode );
glutCreateWindow( argv[0] );
init();
glutDisplayFunc( display );
glutReshapeFunc( resize );
glutKeyboardFunc( key );
glutIdleFunc( idle );
glutMainLoop();
}
36
OpenGL Initialization

Set up whatever state you’re going to use
void init( void )
{
glClearColor( 0.0, 0.0, 0.0, 1.0 );
glClearDepth( 1.0 );
}
glEnable( GL_LIGHT0 );
glEnable( GL_LIGHTING );
glEnable( GL_DEPTH_TEST );
37
GLUT Callback
Functions

Routine to call when something happens




window resize or redraw
user input
animation
“Register” callbacks with GLUT
glutDisplayFunc( display );
glutIdleFunc( idle );
glutKeyboardFunc( keyboard );
38
Rendering Callback

Do all of your drawing here
glutDisplayFunc( display );
void display( void )
{
glClear( GL_COLOR_BUFFER_BIT );
glBegin( GL_TRIANGLE_STRIP );
glVertex3fv( v[0] );
glVertex3fv( v[1] );
glVertex3fv( v[2] );
glVertex3fv( v[3] );
glEnd();
glutSwapBuffers();
}
39
Idle Callbacks

Use for animation and continuous update
glutIdleFunc( idle );
void idle( void )
{
t += dt;
glutPostRedisplay();
}
40
User Input Callbacks

Process user input
glutKeyboardFunc( keyboard );
void keyboard( char key, int x, int y )
{
switch( key ) {
case ‘q’ : case ‘Q’ :
exit( EXIT_SUCCESS );
break;
case ‘r’ : case ‘R’ :
rotate = GL_TRUE;
break;
}
}
41
Summary
There is one field called the primary
key which uniquely identify a record
 SQL can be used to




Create the tables
Add, change, and delete data
Query the DB for specific information
DB vs File System
 ER model

42