Download presentation
Presentation is loading. Please wait.
Published bySylvia Parsons Modified over 9 years ago
1
Basics. OpenGL. “Hello world” George Georgiev Telerik Corporation www.telerik.com
2
Computer graphics 2D 2.5D 3D 3D Graphics Libraries OpenGL Introduction to OpenGL Setting up OpenGL “Hello World” 2
3
Types, Geometry, Libraries
4
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
5
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
6
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
7
Basics, Common practices
8
Primitives Pixels Images (textures) Geometry – Dots, Lines, Triangles (rarely used) Objects (sprites) Groups of pixels Images with transparency Geometry meshes 8
9
Transformations Translation ‘Mirroring’ Rotation (only for ‘geometry’ sprites) Scaling (only for ‘geometry’ sprites) 9
10
Coloring Per-pixel Per-vertex (‘geometry’ sprites) Animation Image sequences 10
11
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
12
Basics, Common practices
13
Primitives Images (textures) Objects (sprites) Multiple images, one for each object orientation 13
14
Transformations Translation ‘Mirroring’ (not often) Oblique projection (pre-rendered) Coloring Per-pixel Animation Image sequences 14
15
15
16
Finally…
17
Primitives Geometry – Vertices, Lines, Triangles Objects (sprites) Geometry meshes Triangles (solid) Lines (wireframe) Vertices (‘constellations’) 17
18
Transformations Translation Rotation Scaling Uniform Non-uniform Projection Parallel (mainly orthogonal) Perspective 18
19
Coloring & Transparency Per-vertex Drawing order matters for transparency! Transparent objects are drawn after opaque ones Lighting Per-vertex Essential Texturing 19
20
Perspective viewing Elements Eye position View angle Near clipping plane Far clipping plane 20
21
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
22
Near clipping plane The nearest visible distance Represents the display Far clipping plane The farthest visible distance Objects behind it are not rendered 22
23
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
24
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
25
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
26
Introduction. "Hello World"
27
OpenGL 2.0 & 2.1 Cross-platform Cross-language Hardware accelerated Reviewed and updated ARB, Khronos Group Extension mechanism Massive community 27
28
Low-level Procedural Shader support GLSL State-machine Open-source, Open standard 28
29
Additional libraries GLEW – The extension wrangler Makes it easy to access extensions Included before all other OpenGL libraries FreeGLUT – The utility toolkit Handles window procedures Handles input Cross-platform Supersedes GLUT 29
30
OpenGL & FreeGLUT with MS Visual Studio Gathering “include” files Compiling “.lib” and “.dll” files Adding to the SDKs Adding the.dll files to the system Making a project Linking against the “.lib” files 30
31
Useful links Setting up ONLY OpenGL http://thoughtsfrommylife.com/article-748- OpenGL_and_Visual_Studio_Express_2008 http://thoughtsfrommylife.com/article-748- OpenGL_and_Visual_Studio_Express_2008 http://thoughtsfrommylife.com/article-748- OpenGL_and_Visual_Studio_Express_2008 OpenGL setup and beginner tutorials http://www.swiftless.com/opengltuts.html http://www.swiftless.com/opengltuts.html Large-scope OpenGL tutorials (currently – 11.07.2011 – under maintenance) http://nehe.gamedev.net/ http://nehe.gamedev.net/ 31
32
Live Demo
33
OpenGL “Hello World” with FreeGLUT Goals Create a window with OpenGL working in it Introduce GLUT window procedures and the glutMainLoop OpenGL knowledge attained: OpenGL colors Identity matrix glClear 33
34
Live Demo
35
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.