Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Computer Graphics with WebGL / Project / shaders.js
diff options
context:
space:
mode:
Commit74f7343e14addefc74446c19018b3f82ad961207 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-02-09 10:58:45 +0200
Committer
 Syndamia <kamen@syndamia.com>
2023-02-09 10:58:45 +0200
Files888066413efb35a762056537670f13294fa93286 /Year 2/Computer Graphics with WebGL/Project/shaders.js
uni-projects-74f7343e14addefc74446c19018b3f82ad961207.tar
uni-projects-74f7343e14addefc74446c19018b3f82ad961207.tar.gz
uni-projects-74f7343e14addefc74446c19018b3f82ad961207.zip
Parent7cc99d560d3f36996dde0f73becd57445fc54d11 (diff)
[WGL/P] Added initial setup
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);
+ }
+`;