mirror of
https://github.com/processing/processing4.git
synced 2026-02-02 21:29:17 +01:00
31 lines
831 B
GLSL
31 lines
831 B
GLSL
// Toon shader using per-pixel lighting. Based on the glsl
|
|
// tutorial from lighthouse 3D:
|
|
// http://www.lighthouse3d.com/tutorials/glsl-tutorial/toon-shader-version-ii/
|
|
|
|
#define PROCESSING_LIGHT_SHADER
|
|
|
|
uniform mat4 modelview;
|
|
uniform mat4 transform;
|
|
uniform mat3 normalMatrix;
|
|
|
|
uniform vec3 lightNormal[8];
|
|
|
|
attribute vec4 vertex;
|
|
attribute vec3 normal;
|
|
|
|
varying vec3 vertNormal;
|
|
varying vec3 vertLightDir;
|
|
|
|
void main() {
|
|
// Vertex in clip coordinates
|
|
gl_Position = transform * vertex;
|
|
|
|
// Normal vector in eye coordinates is passed
|
|
// to the fragment shader
|
|
vertNormal = normalize(normalMatrix * normal);
|
|
|
|
// Assuming that there is only one directional light.
|
|
// Its normal vector is passed to the fragment shader
|
|
// in order to perform per-pixel lighting calculation.
|
|
vertLightDir = -lightNormal[0];
|
|
} |