TyphoonLabs' OpenGL Shading Language tutorials


Chapter 1: Introduction to GLSL

An Introduction to Programmable Hardware

Brief History of the OpenGL Programmable Hardware Pipeline

Fixed Function vs. Programmable Function

 

Programmable Function Scheme

Fixed Function Scheme

Shader 'Input' Data

 

Uniform Variables

Vertex Attributes

 

Varying Variables

Shader 'Output' Data

 

Vertex Shader

Fragment Shader

Simple GLSL Shader Example

Shader Designer IDE

 

User Interface

 

Toolbar

 

Menu

 

State Properties

 

 

Light States

 

 

Vertex States

 

 

Fragment States

 

Code Window

 

Uniform Variables Manager

 

Chapter 2: GLSL Basics

Introduction

GLSL Language

 

Mechanisms Borrowed from C++

Character Set

 

Pre-processor Keywords

 

Comments

 

Variables and Types

 

Type Descriptions

 

Type Qualifiers

 

Operators and Preference

 

Subroutines

 

Flow Control

 

Built-in Variables

 

Built-in Constants

 

Built-in Attributes

 

General Built-in Uniform States

 

Varying Variables

 

Built-in Functions

 

Chapter 3: GLSL Basic Shaders

Introduction

First Basic Shader

 

Simple Shader 1

 

Simple Shader 2: Using Varying Variables

Using Built-in Uniforms and Attributes

Texturing and Multitexturing (Vertex Attributes)

Discard Shader and Subroutines

Simple Illumination Model 1

Simple Illumination Model 2: Per Vertex Specular & Glossines

 

Chapter 4: Advanced Shaders

Introduction

Per Pixel Illumination Model

Bump Mapping

Simple Parallax Shader

Mandelbrot Shader (Flow Control)

Advanced Illumination Model

 

Chapter 5: Appendix

Using GLSL Shaders Within OpenGL Applications

 

Loading and Using Shaders

 

Using Uniforms

 

Using Textures

 

Using Vertex Attributes

How To Use the 3DSMax5 Mesh Exporter

References


Contact: jrodriguez 'at' parallel-games.com