1 / 21

Lab 1: OpenGL Tutorial

Lab 1: OpenGL Tutorial. CS 282. What’s the plan for today?. Go over our framework code. Learn some basic OpenGL! Reveal Lab 1 Answer questions. Framework Environment. C/C++ and OpenGL Code will be given with Makefiles You can compile in Linux, Mac, and Windows!

trella
Download Presentation

Lab 1: OpenGL Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lab 1: OpenGL Tutorial CS 282

  2. What’s the plan for today? • Go over our framework code. • Learn some basic OpenGL! • Reveal Lab 1 • Answer questions

  3. Framework Environment • C/C++ and OpenGL • Code will be given with Makefiles • You can compile in Linux, Mac, and Windows! • You must use the framework

  4. What should you know? • At the very least • You’ve programmed before • You know the programming cycle • Better for you if • You are familiar with C/C++ • Amazing if • You already know OpenGL • Have a degree in Computer Science

  5. Framework • Where do I get it?! • Resources in Class Website • This lab’s framework provides you with • An initial OpenGL window • Callback functions you will need

  6. What is OpenGL? • A powerful, open source graphics library • Widely used in both industry and academia • Capable of rendering 3D geometries with a plethora of effects • Keeps a “global” state • Transformation, projection matrices • Attributes from primitives

  7. Exercise: Compiling • Compile the framework • Change window size, position, and title

  8. Exercise: Drawing Things! • Since you guys are now pros, let’s draw things! • Every GL primitive starts with glBegin(…), and ends with glEnd () • Example: glBegin (GL_POINT); glVertex3f( 1.0,1.0,1.0); glEnd()

  9. Exercise: Drawing Quads • Find the DrawGLScene() function • After glLoadIdentity(), create a GL primitiveusing GL_QUADS

  10. Exercise: Drawing Quads • Add this code • And this code…

  11. What just happened?! • OK, that’s weird, why is the screen yellow? • We’ve basically rendered our object too close for us to really see it. So, we need to move (or translate) it further back.

  12. Translation and Rotation • Rotation (unsurprisingly) rotates the primitive,BUT rotates it around the “world” axis, NOT itslocal axis • Hint: You can think of the camera as always being at the world origin(0,0,0) • Translation “moves” the primitive around to adifferent location • The order you do translations and rotations in MATTERS

  13. Translation and Rotation • Rotate • Translate

  14. Translation and Rotation • Rotate then Translate • Translate then Rotate

  15. Translation and Rotation • WARNING!!! • OpenGL will perform translations and rotations IN THE OPPOSITE ORDER YOU WRITE THEM IN CODE • i.e. writing the following in code: …glTranslate(...)glRotate(…) …Will rotate then translate the primitive

  16. Translation and Rotation • Important things to keep in mind: • Translate/Rotate operates relative to the world origin • The order of translations and rotations matters • OpenGL will perform translations and rotations in the OPPOSITE order you list them in code

  17. Exercise: Finish the cube • Add this line of code above your primitive in your drawing function. • Finish the rest of the cube. • Change the color of each side to something else! glColor3f( red, green, blue );

  18. Callbacks • GLUT allows us to interface between events (such as clicking, keyboard input, etc.) and OpenGL.

  19. Lab 1 • Implement a camera to move around in OpenGL. • Use the callback functions provided for you. • Use the cube as a way to debug your camera. • Make sure you at least create a vector, camera, and framework class.

  20. Questions?

  21. Useful sites • OpenGL Reference Pages: http://www.opengl.org/sdk/docs/man/ (what we use)http://www.opengl.org/sdk/docs/man4/ (latest ver.) • NeHe Tutorials (under Legacy Tutorials):http://nehe.gamedev.net/ • Note: As of Aug. 2011, the current tutorials are a little out-of-date/deprecated, but in the process of being updated. They still give a good explanation of the basics, but don’t expect to be able to run the code.

More Related