OpenGL and JOGL


Literature

Online Tutorials and Manuals

Java Sources:

JOGLbase.java
View.java
Fullscreen.java
InputDevice.java
UserEventMediator.java
Light.java

DrawingBasics.java
StipplePattern.java
Blend.java

GLUdemo.java
GLUTdemo.java
SolarSystem.java
Imaging.java
Font.java

Texturing.java
Based on NeHe classes ported to Java as JOGL-NeHe (in package nehe;):
nehe/BitmapLoader.java
nehe/ResourceRetriever.java
nehe/TextureReader.java
(Handmade all-in-one texturing class:TexturingAllInOne.java)

Texture3D.java

Bezier.java

Particle.java
ParticleSystem.java

VertexArray.java

ModelLoaderOBJ.java using JautOGL.zip the OBJ importer from JautOGL Project


OpenGL Libraries and Header Files (for C,C++,..):

GLee (GL Easy Extension library), a free cross-platform (Windows, Linux, OS-X and FreeBSD) extension loading library for OpenGL.
CsGL
The Tao Framework provides .NET and Mono bindings to various native libraries, including OpenGL, SDL, Cg, DevIL, ODE, OpenAL, Lua, and more:
MESA 3D


  1. OpenGL Introduction
    1. What is openGL?
    2. History
    3. GLUT and GLU and GLX and WGL
    4. OpenGL Features: What can OpenGL do?
    5. A Very Simple OpenGL Program
    6. OpenGL Command Syntax
    7. OpenGL State Machine
    8. OpenGL Rendering Pipeline
    9. Rendering Pipeline Details

  2. JOGL Introduction
    1. What is JOGL?
    2. JOGL Installation
    3. JOGL Components and GLEventListener
    4. JOGL Program Template
      Exercise: Hello JOGL

  3. GLUT
    1. GLUT: The OpenGL Utility Toolkit
    2. GLUT Example Program

  4. Qt
    1. OpenGL Applications with Qt
    2. Qt Referat von Tretter und Rachimow WS2006

  5. Points and Lines
    1. Points
    2. Specifying Vertices
    3. Homogeneous Coordinates
    4. Points Size, Get-Functions
    5. Lines
    6. Geometric Lines Primitves
      Exercise: Points and Lines
    7. Wide Lines
    8. Stippled Lines
      Exercise: Wide and Stippled Lines
    9. Antialiasing
    10. Fog
    11. Fog Equations
      Exercise: Antialiasing and Fog

  6. Polygons
    1. Valid Polygons
    2. Nonplanar Polygons
    3. Tessellation and Triangulation
    4. Polygon Primitves
    5. Removing Polygon Edges
      Exercise: Polygon
    6. Rectangles
    7. Polygon Fill
    8. Normal Vectors
    9. Reversing and Culling
      Exercise: Polygon Fill
    10. Stippled Polygons
    11. Stippled Polygons example program
      Exercise: Stiplled Polygons

  7. Interaction und Animation
    1. Animation
    2. Animator Class
    3. Animator Example Program
    4. Interaction
    5. User Input Event Listeners
      Exercise: Animator

  8. Color and Transparency
    1. Bitplanes
    2. Colormode
    3. Dithering
    4. Color in RGBA Mode: glColor
      Exercise: Colored Circles
    5. Shading Model
      Exercise: Gradient Fill
    6. Blending
    7. Blending Source and Destination
    8. Blending Function
    9. Blending Equation
    10. Blending Examples
      Exercise: Blending

  9. Depthbuffer (Z-buffer), Depthtest and Culling
    1. Depthbuffer (Z-Buffer) Algorithm
    2. Depthbuffer Range and Precision
    3. Depthbuffer Example Program
    4. 3D Blending with the Depth Buffer
    5. Polygon Offset
      Exercise: Depth Test

  10. Model - View - Projection
    1. Transformations: The Camera Analogy
    2. Stages of Vertex Transformation
    3. Viewing and Modeling Transformations
    4. The Order of Transformations
    5. The Order of Transformation Matrices
    6. Translate
    7. Rotate
    8. Scale
    9. General-Purpose Transformations
    10. Viewing Transformations
    11. Viewing with gluLookAt()
    12. Projection Transformations
    13. Perspective Projection
    14. Orthographic Projection
    15. Additional Clipping Planes
    16. Matrix Stacks
    17. Transformations Program Example
      Exercise: Transformations
    18. Viewport Transformation
    19. Attribute Groups: glPushAttrib()

  11. Display Lists
    1. Display Lists
    2. Creating and Executing a Display List
    3. Display Lists Example Program
    4. Executing Multiple Display Lists
    5. Hierarchical Display Lists
      Exercise: Display Lists

  12. GLU and GLUT
    1. GLU Introduction
    2. GLU: Coordinate Transformation
    3. gluPickMatrix - define a picking region
    4. GLU Polygon Tessellation
    5. Winding Numbers
    6. Tessellation Callback Example
    7. GLU Quadric Objects
    8. Manage Quadrics Objects
    9. GLU Functions to Manage Quadric Objects
    10. Quadrics Primitives
    11. Quadrics Primitives Example Program
    12. GLU: Error Handling
      Exercise: GLU
    13. Drawing 3D Objects with GLUT
    14. GLUT Drawing Example Program
      Exercise: GLUT

  13. Light
    1. Real-World and OpenGL Lighting
    2. Types of Light
    3. Light and Material Colors
    4. Algorithms for Lighting
    5. Light Functions
    6. Material Functions
    7. Lighting Example Program
    8. The Position of a Light Source
    9. Attenuation of Light
    10. Spotlights
    11. Light Model
      Exercise: Light

  14. Images
    1. Images
    2. Reading, Writing, and Copying Pixel Data
    3. Image Storage Modes
    4. Magnifying or Reducing an Image
    5. Imaging Example Program
      Exercise: Image
    6. Convolution Filter

  15. Bitmaps and Fonts
    1. Introduction: Bitmaps and Images
    2. Bitmaps and Fonts
    3. Positioning
    4. Drawing the Bitmap
    5. Choosing a Color for the Bitmap
    6. Fonts and Display Lists
    7. Fonts with GLUT
      Exercise: Font

  16. Texture
    1. Texture Intro
    2. Steps in Texture Mapping
    3. Texture Functions: glTexEnv
    4. Texture Format: Reading an Image File
    5. Texture Objects
    6. Loading a Texture into OpenGL: glTexImage
    7. Mipmapping: Multiple Levels of Detail
    8. Texture Parameter and Filtering
    9. Assigning Texture Coordinates
    10. Repeating and Clamping Textures
    11. Texture Parameter
    12. Background Texture
      Exercise: Texture
    13. Replacing All or Part of a Texture Image
    14. Secondary Specular Highlights
    15. Anisotropic Fitering
    16. Resident Textures
    17. Texture Proxy
    18. The Texture Matrix Stack
    19. 3D Textures
    20. Texture Compression
    21. Multitexture
    22. Animated Textures
    23. Procedural Textures

  17. Texture-Coordinates, Lightmaps and Environment Mapping
    1. Automatic Texture-Coordinate Generation (local backup)
    2. LightMaps (local backup)
    3. Environment Mapping (local backup)
    4. Environment Mapping: extern tutorial (local copy local copy)
    5. Cube Maps

  18. Import 3D Models from (obj, 3ds, tga, etc.) Files
  19. (OBJ Spec, waveobj Spec)
    1. OBJ
    2. OBJ specs_vertices
    3. OBJ Specs Polygons
    4. OBJ Specs Textures
    5. OBJ
    6. OBJ
    7. md2(Quake II) and 3ds(3D Studio Max) format http://javaisdoomed.sourceforge.net/
    8. 3ds http://miageprojet.unice.fr/twiki/bin/view/Projets/TutorialVisualisationSansTex
    9. Referat Christian Lührs WS2006 Java Sourcen

  20. Curves, Splines and Surfaces
    1. Curves and Evaluators
      Exercise: Curves
    2. Bernstein Polynomial and Bezier Curves
    3. Bezier Curves: glMap1, glEvalCoord1f
    4. Bezier Curve Example Program
    5. Evenly Spaced Coordinates:
      glMapGrid1f, gl.glEvalMesh1
      Exercise: Bezier Curve
    6. Bezier Surfaces Evaluators
    7. Bezier Surface: glMap2, glEvalCoord2f
    8. 2D Evenly Spaced Coordinate Grid: glMapGrid2f, gl.glEvalMesh2
    9. Bezier Surface Example Program
      Exercise: Bezier Surface
    10. The GLU NURBS Interface
    11. NURBS Example Program

  21. Particle Effects
  22. Referat Reimer und Freytag WS2006
    1. Particle Effects and Particle Engines
    2. Particle Source Code
    3. Particle System Source Code
      Exercise: Particle System

  23. Vertex Arrays
    1. Why Vertex Arrays
    2. Using Vertex Arrays: 3 Steps
    3. Step 1: Enable Vertex Arrays
    4. Step 2: Specifying Data for the Arrays
    5. Step 3: Dereferencing and Rendering
    6. Interleaved Arrays
    7. Vertex Arrays Example Program
    8. Vertex Buffer Objects (VBOs)

  24. Shadows
    1. Intro -- Overview
      Exercise: Shadows

  25. OpenGL Shading Language (GLSL) and
    NVidea's Cg (C for graphics)
  26. Referat Richard Schubert WS2006
    1. Referat
    2. Cg Code
    3. GLSL Code
    4. Hair and Dynamic Fur by Prof. Dr. Rüdiger Westermann (local backup)

  27. Terrain Generation
  28. Referat Günther und Dietze WS2006
    1. Java Sourcen

  29. JOGL Applets
    1. JOGL Applets and Applet Security
    2. Signed Applets
    3. Applet Launcher
    4. Applet Launcher Test
    5. Applet WebStart/JNLP
    6. Applet Webstart Test

  30. MISC Useful Things
    1. Center Mouse Cursor Programm by Stefan Rudnitzki
    2. Change to fullsreen and adjust DisplayMode
    3. Define Custom Cursor (or make cursor disappear)
    4. A Simple Makefile for Java

  31. Advanced Topics
    1. (Fast) Metaballs
      paulsprojects metaballs
      polygonise
    2. 3D Rendering- and Game-Engines based on JOGL


Student projects:

rakete_ani.rar -- Workshop "Partikel-Effekte" weiter entwickelt:
- Verschieden Partikeleffekte ausgearbeitet: Funken der Lunte, Qualm der
  Rakete und die Raketenexplosion
- alle Objekte (Laterne, Tonnen, Rakete, Pflanzen) in der Szene sind in
  TextPad programmiert, keine Importe
- Entwicklung einer Soundsteuerklasse fuer die akustische Untermalung
- Erstellung und Verwendung von eigenen Sounds
- Verwendung mehrerer Lichtquellen (Spotlight, Pointlight), teilweise dynamisch
- Erstellung von verschiedenen Kameraperspektiven und Kamerafahrten
- Verwendung von einigen Klassen aus der CGA2-Vorlesung, basiert auf dem JOGL-Frame