Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Computer Graphics with WebGL / Project / shaders.js
diff options
context:
space:
mode:
1 files changed, 40 insertions, 0 deletions
-rw-r--r--Year 2/Computer Graphics with WebGL/Project/shaders.js40
diff --git a/Year 2/Computer Graphics with WebGL/Project/shaders.js b/Year 2/Computer Graphics with WebGL/Project/shaders.js
new file mode 100644
index 0000000..d936756
--- /dev/null
+++ b/Year 2/Computer Graphics with WebGL/Project/shaders.js
@@ -0,0 +1,40 @@
+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*max(dot(normal,light),0.0);
+ }
+`;
+
+var fShader = `
+ precision mediump float;
+ varying vec3 vColor;
+ void main()
+ {
+ gl_FragColor = vec4(vColor,1);
+ }
+`;