Download
introduction to opengl n.
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to OpenGL PowerPoint Presentation
Download Presentation
Introduction to OpenGL

Introduction to OpenGL

129 Vues Download Presentation
Télécharger la présentation

Introduction to OpenGL

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Introduction to OpenGL 2003Spring Keng Shih-Ling <kensl@csie.nctu.edu.tw>

  2. Example • OpenGL example

  3. OpenGL is a Graphics API • A software interface for graphics hardware. • Provide the low-level functions to access graphics hardware directly. • OpenGL / Direct3D • OpenGL functions use the prefix gl.

  4. Application GDI OpenGL Hardware Driver … Display Device OpenGL is a Graphics API

  5. OpenGL library • Microsoft’s implementation • From Win95 OSR2, Microsoft Windows ship with OpenGL32.DLL. • For old Win95 users, you still can download OPENGL95.EXE via Microsoft website. • Header files and import library files are already included in Win32 Platform SDK.

  6. OpenGL library • Microsoft’s OpenGL32.DLL applies a hardware accelerated driver registered in Registry. • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers • You can search it by using REGEDIT.EXE

  7. API Hierarchy

  8. OpenGL Utility Library • The OpenGL Utility Library(GLU) provides many of the modeling features, such as quadric surfaces and NURBS curves and surfaces. • GLU is a standard part of every OpenGL implementation • GLU routines use the prefix glu. • gluLookAt( … ); • …

  9. Windows system related helper library • For every window system, there is a library that extends the functionality of that window system to support OpenGL rendering. • X Window System -> GLX • Microsoft Windows -> WGL • IBM OS/2 -> PGL

  10. OpenGL Utility Toolkit • The OpenGL Utility Toolkit (GLUT) is a window system-independent toolkit, written by Mark Kilgard, to hide the complexities of differing window system APIs. • GLUT routines use the prefix glut. • glutPostRedisplay(); • …

  11. OpenGL Utility Toolkit • You can download this toolkit in the following website • Win32 • http://www.xmission.com/~nate/glut.html • Linux • http://www.mesa3d.org • We focus on this toolkit

  12. Basic Setup (GLUT) • On Microsoft Visual C++ 6: • Put glut.h into <MSVC>/include/GL/ • Put glut.lib into <MSVC>/lib/ • Put glut32.dll into <window>/System32/ • On Microsoft Visual C++ .NET: • Put glut.h into <MSVC>/platformSDK/include/GL/ • Put glut.lib into <MSVC>/platformSDK/lib/ • Put glut32.dll into <window>/System32

  13. How to Compile (VC6.0) • On Microsoft Visual C++ 6: • Create a new Project with Win32 Console Application • Open Project Settings dialog and add opengl32.lib glu32.lib glut32.lib into Link/Objects/library modules. • Writing your OpenGL code. • Compile it.

  14. How to Compile (.NET) • On Microsoft Visual C++ .NET: • 建立Win32專案 • 在應用程式設定,選擇主控台應用程式 • 開啟專案屬性,在連結器/輸入/其他相依性中輸入opengl32.lib glu32.lib glut32.lib。 • Writing your OpenGL code. • Compile it.

  15. How to Compile (.NET)

  16. The Simplest Program #include <GL/glut.h> void GL_display() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 1.0f, 1.0f); glutSolidCube(1.0); glFlush(); } void GL_reshape(GLsizei w, GLsizei h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-2.0f, 2.0f, -2.0f, 2.0f, -2.0f, 2.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }

  17. The Simplest Program void main(void) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutCreateWindow("Sample"); glutDisplayFunc(GL_display); glutReshapeFunc(GL_reshape); glutMainLoop(); }

  18. The Simplest Program

  19. Reference • Official site of OpenGL • http://www.opengl.org • Useful Sites • NeHe’s OpenGL Tutorials • The Developer’s Gallery

  20. Reference • Further Reading • OpenGL Programming Guide (Red Book) • OpenGL Reference Manual (Blue Book) • OpenGL Super Bible (中文版)

  21. Any Question? ?