Computer Graphics in Game programming
description
Transcript of Computer Graphics in Game programming
Computer Graphics in Game
programmingBasics. OpenGL. “Hello world”
George GeorgievTelerik Corporationwww.telerik.
com
Table of Contents Computer graphics
2D 2.5D 3D 3D Graphics Libraries
OpenGL Introduction to OpenGL Setting up OpenGL “Hello World”
2
Computer graphicsTypes, Geometry, Libraries
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
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
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
2D Game GraphicsBasics, Common practices
2D Game Graphics Primitives
Pixels Images (textures) Geometry – Dots, Lines, Triangles
(rarely used) Objects (sprites)
Groups of pixels Images with transparency Geometry meshes
8
2D Game Graphics Transformations
Translation ‘Mirroring’ Rotation (only for ‘geometry’
sprites) Scaling (only for ‘geometry’ sprites)
9
2D Game Graphics Coloring
Per-pixel Per-vertex (‘geometry’ sprites)
Animation Image sequences
10
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
2.5D Game GraphicsBasics, Common practices
2.5D Game Graphics Primitives
Images (textures) Objects (sprites)
Multiple images, one for each object orientation
13
2.5D Game Graphics Transformations
Translation ‘Mirroring’ (not often) Oblique projection (pre-rendered)
Coloring Per-pixel
Animation Image sequences
14
2.5D Example
15
3D Game GraphicsFinally…
3D Game Graphics Primitives
Geometry – Vertices, Lines, Triangles
Objects (sprites) Geometry meshes
Triangles (solid) Lines (wireframe) Vertices (‘constellations’)
17
3D Game Graphics Transformations
Translation Rotation Scaling
Uniform Non-uniform
Projection Parallel (mainly orthogonal) Perspective 18
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
3D Game Graphics Perspective viewing
Elements Eye position View angle Near clipping plane Far clipping plane
20
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
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
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
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
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
Comuputer Graphics in Game programming
Questions? ?
?? ? ??
?? ?
?