opengl help session

13
OpenGL Help Session CS248 Fall 2008 Derek Chan

Upload: thisbe

Post on 06-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

OpenGL Help Session. CS248 Fall 2008 Derek Chan. OpenGL needs a windowing system. OpenGL by itself does not talk to the windowing system/manager by itself. Need a toolkit to tell the windowing system that we need an OpenGL window. Examples: GLUT/ GLUI (used in Project 2) ‏ - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OpenGL Help Session

OpenGL Help SessionCS248 Fall 2008

Derek Chan

Page 2: OpenGL Help Session

OpenGL needs a windowing system

• OpenGL by itself does not talk to the windowing system/manager by itself.

• Need a toolkit to tell the windowing system that we need an OpenGL window.

• Examples:

• GLUT/ GLUI (used in Project 2)

• SDL (more features: sound, image file loaders)

• wxWidgets, Qt (full fledged widget toolkits, probably overkill for a game)

Page 3: OpenGL Help Session

OpenGL needs a windowing system

• What does the windowing toolkit handle?

• Opening a window in the OS

• Window resizing

• Mouse/ keyboard presses

• Mouse position/movement

• What does OpenGL do? - draw

Page 4: OpenGL Help Session

Drawing

•glBegin():

•GL_POINTS

•GL_LINES

•GL_TRIANGLES

•Etc.

Page 5: OpenGL Help Session

Drawing

•glBegin(GL_LINES);

•glColor3f(r,g,b);

•glNormal3f(x,y,z);

•glTexCoord2d(u,v);

•glVertex3f(x,y,z);

•glEnd();

Page 6: OpenGL Help Session

OpenGL function suffixes

•OpenGL functions that take different types of arguments while providing the same functionality will often have a suffix to denote which type of function they are:

•glVertex2i - input is 2 integers

•glVertex3fv - input is 3 floats in an array

•glVertex3f - input is 3 floats

Page 7: OpenGL Help Session

OpenGL Camera

•glFrustrum

•gluPerspective

•glOrtho

•gluOrtho2d

•glViewport

•gluLookAt

Page 8: OpenGL Help Session

OpenGL

•glEnable( )

•glDisable( )

•GL_DEPTH_TEST

•GL_BLEND

•GL_LIGHTING

•GL_LIGHT1

Page 9: OpenGL Help Session

OpenGL

•Find simple tutorials online

•OpenGL does many things which you might not know about

•Display Lists (glGenLists, glCallList)

Page 10: OpenGL Help Session

OpenGL extensions

•Extensions to the OpenGL base system often have their own suffixes. For example:

•glCreateProgramObjectARB(to create a shader program using an ARB extension)

•Use GLEW (OpenGL Extension Wrangler) for easy access to extensions.

Page 11: OpenGL Help Session

Basic OpenGL Game Flowchart

1.Load up an OpenGL window using a toolkit to talk to the windowing system

•Set up projection matrices, shading properties, etc. Load textures, etc.

•Event loop:

•Check for any events or user input and process them

•Redraw the OpenGL scene as necessary

•Wait a small amount of time.

Page 12: OpenGL Help Session

General Programming Advice

1. have a math library

1. use object oriented programming

1. use c++ stl classes (or equivalent)

Page 13: OpenGL Help Session

Example Pitfalls

• Depth Testing vs blending (transperancies)

• Texture dimensions – power of 2(fixed in more recent implementations of OpenGL)

• Projection matrix should only be used for camera position, etc. It has a shorter stack than the Model-View matrix.