260 likes | 435 Views
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.
E N D
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 Types, 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
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
Computer graphics • 3-Dimensional (3D) graphics • Provide depth information • Units – whatever you like • Use both 3D and 2D geometry • Drawing order DOESN’Tmatter • except for transparency • Lighting and texturing are essential • Model files are essential
2D Game Graphics Basics, 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
2D Game Graphics • Transformations • Translation • ‘Mirroring’ • Rotation (only for ‘geometry’ sprites) • Scaling (only for ‘geometry’ sprites)
2D Game Graphics • Coloring • Per-pixel • Per-vertex (‘geometry’ sprites) • Animation • Image sequences
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
2.5D Game Graphics Basics, Common practices
2.5D Game Graphics • Primitives • Images (textures) • Objects (sprites) • Multiple images, one for each object orientation
2.5D Game Graphics • Transformations • Translation • ‘Mirroring’ (not often) • Oblique projection (pre-rendered) • Coloring • Per-pixel • Animation • Image sequences
3D Game Graphics Finally…
3D Game Graphics • Primitives • Geometry – Vertices, Lines, Triangles • Objects (sprites) • Geometry meshes • Triangles (solid) • Lines (wireframe) • Vertices (‘constellations’)
3D Game Graphics • Transformations • Translation • Rotation • Scaling • Uniform • Non-uniform • Projection • Parallel (mainly orthogonal) • Perspective
3D Game Graphics • Coloring & Transparency • Per-vertex • Drawing order matters for transparency! • Transparent objects are drawn after opaque ones • Lighting • Per-vertex • Essential • Texturing
3D Game Graphics • Perspective viewing • Elements • Eye position • View angle • Near clipping plane • Far clipping plane
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
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
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
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
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
Comuputer Graphics in Game programming ? ? Questions? ? ? ? ? ? ? ? ? ?