Tutorials
Core GLSLAn introduction to Core GLSL that covers shader writing, the graphics pipeline, and the OpenGL setup of an application using shaders. Variables, data types, and language syntax are also explored. Several shader examples are presented. This is the updated version of the previous GLSL tutorial which focused on OpenGL up to 2.0. |
GLSL 1.2An introduction to GLSL up to version 1.2. Both ARB extensions and OpenGL 2.0 versions are included in the tutorial with color coded to help the reader to distinguish between them. |
GLUTGLUT is a library that allows us to write system independent applications without messing up with specific window systems. In this tutorial I cover the initialization required, mouse and keyboard input, pop-up menus, writing text, GLUT’s game mode, and subwindows. |
View Frustum CullingView frustum culling is a simple way to add a boost to an OpenGL application. This tutorial shows how to extract the view frustum for a camera, and how to cull spheres and boxes that are outside the view frustum. Optimizations, notes, references and source code are also provided. |
Picking TutorialSelecting, a particular item in a 3D scene may prove useful for some applications. The selection can be performed by clicking on an object, requiring a way to determine over which object was the mouse placed. This short tutorial shows how to select objects with the mouse using color coding. |
Atomic Counters
This feature adds the ability to create a counter that can be accessed/incremented/decremented in a shader, and subsequently read in the OpenGL application. This can be put to use in many different situations, for instance, creating auxiliary data to allow one to easily create data structures combined with image load/store, debug, and algorithm evaluation.
Framebuffer ObjectsFor non-trivial graphical effects or techniques, such as shadows or deferred rendering, multiple passes are often required, where the outputs of a pass are inputs of the following pass. This is where framebuffer objects come into play. |
Timer Query
OpenGL Timer Queries allows us to profile the GPU, i.e. to determine the amount of time it takes to execute a command, or sequence of commands, in the GPU.
Maths Short Tutorials
A set of math tools for CG. Includes vector operations (length, cross and inner products, and projection), definition of rays and planes, intersection between rays and spheres or triangles, and interpolation.
Led Shader
A great tutorial by Jason Gorski on how to achive the pixelated effect commonly seen in led displays. The tutorial explores in depth how to achieve each of the features of these low res displays. Full source code is made available.
Billboarding
Billboarding is a technique that adjusts an object’s orientation so that it “faces” some target, usually the camera. In this tutorial several techniques to implement billboarding are covered. From cheating billboards to true billboards. In all techniques both Cylindrical and Spherical versions are presented.
Terrain
Several algorithms to generate artificial terrains, including the Mid Point Displacement algorithm, are presented. This tutorial also covers the creation of a height map from an image, and its rendering. Normal computation and lighting simulation for both directional and positional lights is described in detail. A library to load TGA uncompressed images is also provided.
Display Lists
A tutorial with source code exploring some of the possibilities provided by Display Lists. Enhance your application making it run faster with this simple feature.
Shadows
Tutorial and Demo sent by Dario Villa covering Shadows using the stencil buffer and projecting geometry onto planes. Contains an interactive demo with moving lights and geometry. Looks really cool.
VRML Tutorials
VRML Interactive Tutorial
This tutorial covers the basics of VRML97 providing limitless source code due to its interactivity. Look for the “TIY” (Try it yourself”) button on the top of some of the pages. Pressing this button opens a new window where you can play with the parameters and view the results. Source code using your parameters is also provided.
VRML Script Tutorial
You’ve already seen how to build basic animations and simple behaviours with the events predefined for several nodes in VRML. Although these nodes can perform wonders in your VRML world they are limited in the type of actions you can perform. The Scritp node provides the missing flexibility to expand almost limitless your behaviour requirements. The Script node allows you to define behaviours using programming languages such as JAVA, JavaScript, or the recently proposed VRMLScript by Silicon Graphics.
W3D Tutorial
Geometric Primitives Tutorial
3D tutorial dedicated to Shockwave 3D. In here geometry primitives will be explored as well as some important concepts such as models and resources. If you’re not familiar with macromedia’s Director, and its programming language Lingo, then you should check out one of the many sites dedicated to it.