Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Computer Graphics with WebGL / Homework 09 - The virus / shaders2.js
blob: 64e873aefe11dac239a72086d86d10457d38ed4d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var vShader =
	'uniform mat4 uProjectionMatrix;'                               +
	'uniform mat4 uViewMatrix;'                                     +
	'uniform mat4 uModelMatrix;'                                    +
	'uniform mat4 uNormalMatrix;'                                   +
	'uniform bool uUseNormalMatrix;'                                +
	''                                                              +
	'uniform vec3 uAmbientColor;'                                   +
	'uniform vec3 uDiffuseColor;'                                   +
	''                                                              +
	'uniform vec3 uLightDir;'                                       +
	''                                                              +
	'attribute vec3 aXYZ;'                                          +
	'attribute vec3 aColor;'                                        +
	'attribute vec3 aNormal;'                                       +
	''                                                              +
	'varying vec3 vColor;'                                          +
	''                                                              +
	'void main ()'                                                  +
	'{'                                                             +
	'	mat4 mvMatrix = uViewMatrix * uModelMatrix;'                +
	'	gl_Position = uProjectionMatrix * mvMatrix * vec4(aXYZ,1);' +
	'	mat4 nMatrix = uUseNormalMatrix?uNormalMatrix:mvMatrix;'    +
	''                                                              +
	'	vColor = uAmbientColor*aColor;'                             +
	''                                                              +
	'	vec3 light = normalize(-uLightDir);'                        +
	'	vec3 normal = vec3(normalize(nMatrix*vec4(aNormal,0)));'    +
	'	vColor += aColor*uDiffuseColor*abs(dot(normal,light));'     +
	'}';
	
var fShader =
	'precision mediump float;'          +
	'varying vec3 vColor;'              +
	'void main( )'                      +
	'{'                                 +
	'	gl_FragColor = vec4(vColor,1);' +
	'}';