Computer graphic. --OpenGL Tutorial

Computer graphic --OpenGL Tutorial About me • Who: Jie Chen • What: Teaching assistant, Lab exercises • How: TS329 • Email: [email protected] 2 •...
Author: Brianna Glenn
0 downloads 0 Views 550KB Size
Computer graphic --OpenGL Tutorial

About me • Who: Jie Chen • What: Teaching assistant, Lab exercises • How: TS329 • Email: [email protected] 2

• Website: http://www.ee.oulu.fi/~jiechen/Course.htm • Prerequisite programming skills using C/C++

3

• Tools: OpenGL • Task: what OpenGL is and how it enables us to program in 3D. • GL: graphic library

4

What is OpenGL? • It's a way to draw stuff in 3D. – It can also be used for 2D drawing, but this course doesn't focus on that. There are better tools for straight 2D drawing, such as SDL and Allegro.

• The purpose of OpenGL is to communicate with the graphics card about our 3D scene. – The graphics card is where the 3D computation happens. – So why not talk to the graphics card directly? • Each graphics card is a little different. • In a sense, they all speak different "languages". To talk to them all, we can either learn all of their languages, or find a "translator" that knows all of their languages and talk to the translator, so that we only have to know one language. • OpenGL serves as a "translator" for graphics cards. 5

Some Terminologies • OpenGL – GL: graphic library – a software interface to graphics hardware. – This interface consists of about 150 distinct commands.

6

Some Terminologies • GLU (OpenGL Utility Library) – GLU is a standard part of every OpenGL implementation. – A sophisticated library that provides the features could be built on top of OpenGL. – Provides many of the modeling features, such as • quadric surfaces and • NURBS (Non-Uniform Rational B-Spline) curves and surfaces.

7

Some Terminologies • GLUT (OpenGL Utility Toolkit) – a window system independent toolkit for writing OpenGL programs. – It implements a simple windowing application programming interface (API) for OpenGL. – GLUT makes it much easier to learn about and explore OpenGL Programming. – Controlling the IO layer • input: mouse and keyboard • output: visual windows

8

Include Files • For all OpenGL applications, we need to include the gl.h header file in every file. • Almost all OpenGL applications use GLU, which requires inclusion of the glu.h header file. So almost every OpenGL source file begins with – #include – #include

• If we are using GLUT for managing our window manager tasks, we should include – #include

• Note that glut.h includes gl.h and glu.h automatically 9

Getting OpenGL Set Up • In following part, we will show how to get OpenGL and GLUT set up on Windows, so that we can get started making 3D programs. • we can use OpenGL on other operating systems, but this part doesn't cover how to get it set up on those OSes. – Mac OS X http://www.videotutorialsrock.com/opengl_tutorial/get_opengl_se tup_mac_osx/home.php

– Linux http://www.videotutorialsrock.com/opengl_tutorial/get _opengl_setup_linux/home.php 10

Getting OpenGL Set Up on Windows • Explain how to get OpenGL and GLUT set up on Windows (e.g., windows XP). • Use the Visual C++ 6.0. • You can also use other version, such as Visual C++ 2003, 2005, 2008. – CSE: Computer science and engineering laboratory • You can find it in our server

– Other department: • you can downloade here: • http://msdn.microsoft.com/zh-cn/express/default.aspx • You have to register, which is free, within 30 days. 11

OpenGL • Download – OpenGL installer – GLUT binary • http://www.ee.oulu.fi/~jiechen/Course.htm • Lecture notes ->Lecture 3

12

OpenGL setup • Run the OpenGL installer.

13

GLUT setup • Extract GLUT to the directory of your choice. • We can do this by creating a new directory, locating and opening the ZIP file using Windows Explorer, and copying the files to the new directory using copy-paste. • Alternatively, We can use a free program like WinZip to extract GLUT.

14

GLUT setup • In the directory GLUT, make two folders – one called "include" and – one called "lib".

• File assignment: – In the "include" folder, create another folder called "GL", and move glut.h to that folder (..\Include\GL). – Move all of the other extracted files for GLUT into the "lib" folder. 15

Setup for Visual C++ • Run Visual C++ • Go to Tools -> Options-> Directories • Adding " GLUT \include", and " GLUT \lib"

16

Setup for Visual C++ • glut32.dll (dll: Dynamic-link library)

17

Compiling and Running the Test Program • To make sure that everything was set up correctly, we're going to see if we can get a test program to work. • Download test program and extract it somewhere on your computer. – http://www.ee.oulu.fi/~jiechen/Course.htm – Lecture notes ->Lecture 3

18

Compiling and Running the Test Program • Run Visual C++. • Go to File -> New -> Project • Select Win32 Console applications • Set the project file location. • Enter in a name for your project (such as “CG") and click ok. 19

Compiling and Running the Test Program • Select “a ‘hello world’ applications” • click “Finish” to finish creating the project.

20

Compiling and Running the Test Program • File copy – extracted the downloaded test program – Copy the following files to the current folder

21

Compiling and Running the Test Program • File content modification – Copy the code in main.cpp to replace those in CG.cpp – Add #include "stdafx.h” at the beginning of CG.cpp

22

Compiling and Running the Test Program • Change from "Debug" to "Release".

23

Compiling and Running the Test Program • File adding – Two files: imageloader.h and imageloader.cpp – Press ok

24

Compiling and Running the Test Program • File adding – Lib file: glut32.lib – Press ok

25

Compiling and Running the Test Program • Workspace view

26

Compiling and Running the Test Program • Go to Build -> Build project_name (e.g., Build CG.cpp) to build our project.

27

Compiling and Running the Test Program • Run it!

28

Compiling and Running the Test Program • Take a look at main.cpp. – Notice that the include directives for OpenGL appear after the #include directives for the normal C++ include files. – If we had them in the opposite order, you'd get a compiler error. So make sure that the include files for the standard C++ stuff appear before the include files for OpenGL.

Correct

ERROR 29

Compiling and Running the Test Program • Whew! We've finished setting up OpenGL. • Now we're ready to learn how to program in 3D.

30

Demo

31

• OpenGL Programming Guide or ‘The Red Book’ – http://unreal.srk.fer.hr/theredbook/

32

• The end of this lecture!

33