1 / 21

Introduction to OpenGL

Introduction to OpenGL. 2003 Spring. Keng Shih-Ling <kensl@csie.nctu.edu.tw>. Example. OpenGL example. OpenGL is a Graphics API. A software interface for graphics hardware. Provide the low-level functions to access graphics hardware directly. OpenGL / Direct3D

viveca
Download Presentation

Introduction to OpenGL

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. 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? ?

More Related