Вы находитесь на странице: 1из 32

CSC 307 1.

Graphics Programming

Budditha Hettige Department of Statistics and Computer Science

Graphics Programming

Budditha Hettige

Common Uses for Computer Graphics


Applications for real-time 3D graphics range from interactive games and simulations to data visualization for scientific, medical, or business uses Military flight simulators Computer-aided design (CAD) Architectural or civil planning Scientific visualization Entertainment

Budditha Hettige

Movies

Budditha Hettige

Games

Budditha Hettige

Simulation

Budditha Hettige

CAD-CAM & Design

Budditha Hettige

Architecture

Budditha Hettige

Virtual Reality

Budditha Hettige

Visualization

Budditha Hettige

10

Medical Imaging

Budditha Hettige

11

Graphics System

User Program

Graphics System

IO Devices

Graphics API

Budditha Hettige

12

Graphics Designing

Budditha Hettige

13

Graphics: Conceptual Model


Real Light

Human Eye Real Object

Synthetic Light Source

Synthetic Camera

Real Object

Synthetic Model

Human Eye Display Device

GraphicsBudditha Hettige System

14

OpenGL
Standard specification defining a cross-language, crossplatform API Is not a programming language Writing applications that produce 2D and 3D computer graphics A software interface to graphics hardware Designed and optimized for the display and manipulation of 3D graphics Developed by Silicon Graphics Inc. (SGI) in 1992

Budditha Hettige

15

OpenGL-Graphics rendering API


Rendering API
High-quality color images composed of geometric and image primitives Window system independent Operating system independent

OpenGL Pipeline

Budditha Hettige

16

OpenGL Architecture
Per Vertex Operations & Primitive Assembly

Polynomial Evaluator

CPU

Display List

Rasterization

Per Fragment Operations

Frame Buffer

Texture Memory
Pixel Operations

Budditha Hettige

17

Software & Hardware Interfaces

Software Interface
Budditha Hettige

Hardware Interface
18

OpenGL and Related APIs


application program

OpenGL Motif widget or similar

GLUT
GLU

GLX, AGL or WGL


X, Win32, Mac O/S

GL

software and/or hardware

Budditha Hettige

19

Related APIs
AGL, GLX, WGL
glue between OpenGL and windowing systems

GLU (OpenGL Utility Library)


part of OpenGL NURBS, tessellators, quadric shapes, etc.

GLUT (OpenGL Utility Toolkit)


portable windowing API not officially part of OpenGL

Initial header inclusions (for Windows)


#include<windows.h> #include<gl/gl.h> #include<gl/glu.h> #include <GL/glut.h>
Budditha Hettige

20

Function-Naming Conventions
All OpenGL functions take the following format
<Library prefix><Root command><Optional argument count><Optional argument type>

Budditha Hettige

21

OpenGL data types

Budditha Hettige

22

2D Coordinates

Budditha Hettige

23

Coordinate Clipping

Budditha Hettige

24

Viewports
Mapping Drawing Coordinates to Window Coordinates

viewport defined as twice the size of the clipping area


Budditha Hettige

25

Viewports

viewport that matches the clipping area


Budditha Hettige

26

OpenGL 3-D coordinates


Right-handed system From point of view of camera looking out into scene: +X right, -X left +Y up, -Y down +Z behind camera, -Z in front Positive rotations are counterclockwise around axis of rotation

Budditha Hettige

27

OpenGL Geometric Primitives


Primitives are one- or two-dimensional entities or surfaces such as points, lines, and polygons

GL_POINTS

GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON

GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN


28 Budditha Hettige

GL_QUADS GL_QUAD_STRIP

The VertexA Position in Space


Each corner of the any primitive is called a vertex. Ex: three-dimensional cube consists of six two dimensional squares, each placed on a separate face

Budditha Hettige

29

Projections: Getting 3D to 2D
Orthographic Projections Perspective Projections

Budditha Hettige

30

RGB Color Space


G
Green (1,0,0)

Cyan (0,1,1)
Image: Pixel maps to color

White (1,1,1)

Yellow (1,1,0)

Blue (0,0,1)

Blk Magenta (1,0,1)

Red (1,0,0)

B
Budditha Hettige

31

Common Composite Colors

Budditha Hettige

32

Вам также может понравиться