Computer Graphics in Game programming

26
Computer Graphics in Game programming Basics. OpenGL. “Hello world” George Georgiev Telerik Corporation www.telerik. com

description

Computer Graphics in Game programming. Basics. OpenGL. “Hello world” . George Georgiev. Telerik Corporation. www.telerik.com. Table of Contents. Computer graphics 2D 2.5D 3D 3D Graphics Libraries OpenGL Introduction to OpenGL Setting up OpenGL “Hello World”. Computer graphics. - PowerPoint PPT Presentation

Transcript of Computer Graphics in Game programming

Page 1: Computer Graphics in Game programming

Computer Graphics in Game

programmingBasics. OpenGL. “Hello world”

George GeorgievTelerik Corporationwww.telerik.

com

Page 2: Computer Graphics in Game programming

Table of Contents Computer graphics

2D 2.5D 3D 3D Graphics Libraries

OpenGL Introduction to OpenGL Setting up OpenGL “Hello World”

2

Page 3: Computer Graphics in Game programming

Computer graphicsTypes, Geometry, Libraries

Page 4: Computer Graphics in Game programming

Computer graphics Computer graphics are

Representation of image data 2 types – 2D and 3D Computation-heavy Closely related to computer

geometry Basic terminology

Primitives Transformations Interpolation

4

Page 5: Computer Graphics in Game programming

Computer graphics 2-Dimensional (2D) graphics

Space is planar Units – usually pixels Use 2D geometry Drawing order matters Image files are essential

Pseudo 3-D (2.5D) graphics Contain per-object depth

information Use oblique projections of 2D

objects

5

Page 6: Computer Graphics in Game programming

Computer graphics 3-Dimensional (3D) graphics

Provide depth information Units – whatever you like Use both 3D and 2D geometry Drawing order DOESN’T matter

except for transparency Lighting and texturing are essential Model files are essential

6

Page 7: Computer Graphics in Game programming

2D Game GraphicsBasics, Common practices

Page 8: Computer Graphics in Game programming

2D Game Graphics Primitives

Pixels Images (textures) Geometry – Dots, Lines, Triangles

(rarely used) Objects (sprites)

Groups of pixels Images with transparency Geometry meshes

8

Page 9: Computer Graphics in Game programming

2D Game Graphics Transformations

Translation ‘Mirroring’ Rotation (only for ‘geometry’

sprites) Scaling (only for ‘geometry’ sprites)

9

Page 10: Computer Graphics in Game programming

2D Game Graphics Coloring

Per-pixel Per-vertex (‘geometry’ sprites)

Animation Image sequences

10

Page 11: Computer Graphics in Game programming

2D Game Graphics Rendering process

Create a color buffer (usually a matrix with the screen resolution as dimensions)

Render the background to the buffer

Render the foreground to the buffer Draw the color buffer to the screen

11

Page 12: Computer Graphics in Game programming

2.5D Game GraphicsBasics, Common practices

Page 13: Computer Graphics in Game programming

2.5D Game Graphics Primitives

Images (textures) Objects (sprites)

Multiple images, one for each object orientation

13

Page 14: Computer Graphics in Game programming

2.5D Game Graphics Transformations

Translation ‘Mirroring’ (not often) Oblique projection (pre-rendered)

Coloring Per-pixel

Animation Image sequences

14

Page 15: Computer Graphics in Game programming

2.5D Example

15

Page 16: Computer Graphics in Game programming

3D Game GraphicsFinally…

Page 17: Computer Graphics in Game programming

3D Game Graphics Primitives

Geometry – Vertices, Lines, Triangles

Objects (sprites) Geometry meshes

Triangles (solid) Lines (wireframe) Vertices (‘constellations’)

17

Page 18: Computer Graphics in Game programming

3D Game Graphics Transformations

Translation Rotation Scaling

Uniform Non-uniform

Projection Parallel (mainly orthogonal) Perspective 18

Page 19: Computer Graphics in Game programming

3D Game Graphics Coloring & Transparency

Per-vertex Drawing order matters for

transparency! Transparent objects are drawn after

opaque ones Lighting

Per-vertex Essential

Texturing 19

Page 20: Computer Graphics in Game programming

3D Game Graphics Perspective viewing

Elements Eye position View angle Near clipping plane Far clipping plane

20

Page 21: Computer Graphics in Game programming

3D Game Graphics Eye position

Usually called camera position Represents the user’s viewing

position View angle

The camera’s “lens width” Represents the user’s vision

capabilities 60 or 45 degrees are most

commonly used The larger the view angle, the

larger the view volume

21

Page 22: Computer Graphics in Game programming

3D Game Graphics Near clipping plane

The nearest visible distance Represents the display

Far clipping plane The farthest visible distance Objects behind it are not rendered

22

Page 23: Computer Graphics in Game programming

3D Game Graphics – view volume

The “Frustum” The view volume, clipped by

The near clipping plane The far clipping plane

Contains the visible objects Visible objects are projected on the

near clipping plane

23

Page 24: Computer Graphics in Game programming

3D Game Graphics Rendering process

Create depth and color buffers (matrices with the screen resolution’s dimensions)

Project objects’ vertices on the near clipping plane

Fill depth buffer (interpolating vertices depth)

Clip overlapping objects’ faces (using depth buffer)

Interpolate colors and render color buffer

24

Page 25: Computer Graphics in Game programming

3D Game Graphics Rendering 3D graphics to a 2D screen is a very complicated task Computation-heavy Knowledge-heavy That’s why we use 3D graphics

libraries OpenGL Direct3D Nvidia Cuda

25

Page 26: Computer Graphics in Game programming

Comuputer Graphics in Game programming

Questions? ?

?? ? ??

?? ?

?