 |
|
GLSL Tutorial
Index
Introduction
The Graphics Pipeline Pipeline Overview Vertex Processor Fragment Processor
OpenGL Setup for GLSL Overview Creating a Shader Creating a Program Source Code Trouble Shooting: the InfoLog Cleaning Up
Comm. OpenGL=> GLSL Comm. Introduction Uniform Variables Attribute Variables
Shader Basics Data Types and Variables Statments and Functions Varying Variables
Shader Examples Shader Examples List
GLSL Hello World
Color Shader
Flatten Shader
Toon Shader Toon Shader - Version I Toon Shader - Version II Toon Shader - Version III
Lighting OpenGL Directional Light I OpenGL Directional Light II Directional Light per Pixel Point Light Per Pixel Spot Light Per Pixel
Simple Texture Combine Texture + Fragment Multitexturing
Notes The gl_NormalMatrix Normalization Issues
OpenGLTutorials @ Lighthouse3d.com
Led Shader
View Frustum Culling
GLSL Tutorial
Maths Tutorial
Billboarding Tutorial
Picking Tutorial
Terrain Tutorial
Display Lists Tutorial
GLUT Tutorial
|
|
 |
|
GLSL Tutorial
Toon Shading
Toon shading is probably the simplest non-photorealistic shader we can write. It uses very few colors, usually tones, hence it changes abruptly from tone to tone, yet it provides a sense of 3D to the model. The following image shows what we're trying to achieve.
The tones in the teapot above are selected based on the angle, actually on the cosine of the angle, between a virtual light's direction and the normal of the surface.
So if we have a normal that is close to the light's direction, then we'll use the brightest tone. As the angle between the normal and the light's direction increases darker tones will be used. In other words, the cosine of the angle provides an intensity for the tone.
In this tutorial we'll start with a version that computes the intensity per vertex. Then we will move this computation to the fragment shader. It will also be shown how to access OpenGL light's position.
|