Introduction to OpenGL Programming - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Introduction to OpenGL Programming

Description:

The OpenGL Architecture Review Board(ARB), and independent consortium ... You can search it by using REGEDIT.EXE. Mesa Graphics Library. A OpenGL clone library. ... – PowerPoint PPT presentation

Number of Views:134
Avg rating:3.0/5.0
Slides: 27
Provided by: jll7
Category:

less

Transcript and Presenter's Notes

Title: Introduction to OpenGL Programming


1
Introduction to OpenGL Programming
  • Jian-Liang Lin
  • 2002

2
What is OpenGL? -1
  • OpenGL is a cross-platform standard for 3D
    rendering. and software interface to graphics
    hardware.
  • The OpenGL Architecture Review Board(ARB), and
    independent consortium formed in 1992, governs
    the OpenGL specification.
  • OpenGL routines use the prefix gl.

3
What is OpenGL? -2
  • Designed as a hardware-independent interface and
    implemented on many different hardware platforms.
  • No commands for performing windowing tasks or
    obtaining user input are included in OpenGL.
  • You must work through whatever windowing system
    controls the particular hardware you're using.

4
What is OpenGL? -3
  • OpenGL doesn't provide high-level commands for
    describing models of three-dimensional objects.
  • With OpenGL, you must build up your desired model
    from a small set of geometric primitives.
  • points, lines, triangles, and polygons etc.

5
The Advantages of OpenGL
  • Industry standard
  • Fast
  • Portable
  • Easy to use
  • Well-documented

6
OpenGL rendering pipeline
7
Color Models
  • RGBA color
  • Red, Green, Blue, and Alpha channels
  • Up to 16M colors
  • Color-indexed
  • Small numbers of colors accessed by indices from
    a color lookup table(palette)
  • 8 bits 256 colors

8
Basic Features
  • Transformation
  • Materials Lighting Smooth Shading
  • Texture mapping
  • Depth buffer test (Z-Buffer)
  • Alpha blending
  • Double buffering for animation
  • Pixel operations

9
OpenGL Buffering -1
  • OpenGL supports a variety of buffers for advanced
    rendering
  • Depended on driver implementation
  • Color buffers
  • Front-left, front-right, back-left, back-right,
    and any number of auxiliary buffers
  • Depth buffer
  • Also known as Z-Buffer for HSR

10
OpenGL Buffering -2
  • Alpha buffer
  • Blending
  • Stencil buffer
  • To restrict drawing to certain portions of the
    screen. (basic application)
  • Accumulation buffer
  • Full scene manipulation

11
API Hierarchy
12
OpenGL library -1
  • SGIs OpenGL SDK
  • OpenGL.DLL GLU.DLL
  • Open source implementation for hardware vendor
    reference.
  • Best software rendering library.
  • Can be downloaded from SGIs website.

13
OpenGL library -2
  • Microsofts 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.

14
OpenGL library -3
  • Microsofts 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

15
Mesa Graphics Library
  • A OpenGL clone library.
  • You can use it as using OpenGL.
  • Portable on many OS.
  • You can download it in the following website
  • http//www.mesa3d.org/

16
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( )

17
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 -gt GLX
  • Microsoft Windows -gt WGL
  • IBM OS/2 -gt PGL

18
OpenGL Utility Toolkit -1
  • 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()

19
OpenGL Utility Toolkit -2
  • You can download this toolkit in the following
    website
  • http//reality.sgi.com/mjk_asd/glut3/glut3.html
  • We focus on this toolkit.

20
Programming Environment -1
  • PC(X86)
  • OpenGL v1.1 software runtime is included as part
    of operating system for Win 2000, Windows 98,
    Windows 95 (OSR2) and Windows NT
  • Linux, FreeBSD, other UNIX-like OS can use Mesa
    graphics library.

21
Programming Environment -2
  • SGI workstation
  • Personal IRIS, Indigo, Indy, Indigo2 O2,
  • Octane in CGGM Lab.
  • All with IRIS Operating System and X Window System

22
Compilers Microsoft Visual C
  • Start a new workspace of Win32 Console
    application.
  • Add OpenGL32.lib glu32.lib glut32.lib in
    Projects/Setting/Link/Library modules column for
    linking

23
Compilers Unix-like OS
  • Library files needed
  • libGL.so, libGLU.so, libglut.a, libX11.a,
    libX11.so etc
  • Command line
  • gcc source files o output file lglut lGLU
    lGL lX11 lm
  • The ordering of the linking flags is not
    changeable.
  • Suggest to write a Makefile.

24
Where is the reference?
  • OpenGL official site
  • http//www.opengl.org
  • You refer to OpenGL API documentation in MSDN
    Library.

25
How can you start?
  • Choose your platform
  • Get your desire OpenGL related library.
  • Start a GLUT simple program, build and test.
  • Refine the code as you wish.
  • Refer to some reference materials.
  • Consult with TA ?
  • Feel happy to see the result.

26
Any Question?
  • ?
Write a Comment
User Comments (0)
About PowerShow.com