OpenGL & GLUT Basics
Window reshaping, Keyboard interaction, Camera, Drawing objects
George GeorgievTelerik Corporationwww.telerik.
com
Table of Contents Project using OpenGL & FreeGLUT in MSVC++
Window reshaping Keyboard Interaction Camera
Positioning, orientation Drawing objects
Coloring Positioning, orientation
Basic Lighting2
Project using OpenGL & FreeGLut
A reminder…
OpenGL & FreeGLUT Project
Step 1 – Creating the project Setup OpenGL & FreeGLUT (done
only once) Open Visual Studio, Choose C++ as
a language Create a Win32 Console application Tick “Empty project” Add a new .cpp file
#include <gl\glew.h> #include <gl\freeglut.h> int main(int argc, char ** argv)
4
OpenGL & FreeGLUT Project (2)
Step 2 - Linking Go to Project > [YourProjectName]
Properties From the side menu choose
Configuration properties > Linker > Input
In the Additional Dependencies type in:glew32.libfreeglut.lib
Do this for both Debug and Release configurations (upper left corner in the window)
Close the properties window, you’re ready to go
5
OpenGL & FreeGLUT Project (2)
Tip – the faster way to link to the libraries Skip the entire Step 2 In the .cpp file write:
#pragma comment (lib, “glew32.lib”)#pragma comment (lib, “freeglut.lib”)
6
Window reshapingThe Reshape function
Window reshaping Reshape function
Specified by glutReshapeFunc Defines how your window reshapes Write it once, remember it no more
8
Window reshapingLive Demo
Keyboard interactionThe Keyboard monitoring functions
Keyboard interaction Keyboard monitoring functions
Specified by glutKeyboardFunc glutKeyboardUpFunc
Monitor key pressing and key releasing
Doesn’t receive device information Receives translated windows
messages11
Keyboard interactionLive Demo
Camera controlOrientation and positioning
Camera control ‘Moving the world’ method
Using the glTranslate* and glRotate* functions
You do the things the opposite way around F. e., to move the camera forward,
move the objects backward Using the gluLookAt function
Specifies camera location Viewed location
14
Drawing objectsGLUT predefined objects, Coloring,
Positioning
Drawing objects GLUT predefined functions
glutSolid* glutWireframe*
Coloring glColor* - defines the current
drawing color Positioning
glTranslate* - moves the renderer by a vector
glRotate* - rotates the renderer by an Euler angle
16
Camera control & Drawing objects
Live Demo
Basic LightingEnabling lighting
Basic lighting Enabling lighting
glEnable Enabling ‘color material’
19
Basic LightingLive Demo
OpenGL Basics
Questions? ?
?? ? ??
?? ?
?