summaryrefslogtreecommitdiffstats
path: root/dev/a5-artrender/shaders/gouraud.vert
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2021-11-23 10:45:38 -0600
committerMatt Strapp <matt@mattstrapp.net>2021-11-23 10:45:38 -0600
commitb623569b45d256582e962c5a464c0b16b8bd1383 (patch)
treec52429d6e4703800eaa39ce89c342fd3c29c3034 /dev/a5-artrender/shaders/gouraud.vert
parentdo a4 (diff)
parentUpdate artrender_app.cc (diff)
downloadcsci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar.gz
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar.bz2
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar.lz
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar.xz
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.tar.zst
csci4611-b623569b45d256582e962c5a464c0b16b8bd1383.zip
Merge branch 'support-code' of https://github.umn.edu/umn-csci-4611-f21/shared-upstream
Diffstat (limited to '')
-rw-r--r--dev/a5-artrender/shaders/gouraud.vert58
1 files changed, 58 insertions, 0 deletions
diff --git a/dev/a5-artrender/shaders/gouraud.vert b/dev/a5-artrender/shaders/gouraud.vert
new file mode 100644
index 0000000..fa763cb
--- /dev/null
+++ b/dev/a5-artrender/shaders/gouraud.vert
@@ -0,0 +1,58 @@
+#version 330
+
+// Gouraud Shader Example
+
+// INPUTS:
+
+// uniform = variables passed in from the C++ code
+// model and camera matrices:
+uniform mat4 model_view_matrix;
+uniform mat4 normal_matrix;
+uniform mat4 proj_matrix;
+
+// properties of the light:
+uniform vec3 light_in_eye_space;
+uniform vec4 Ia, Id, Is;
+
+// properties of the material we are lighting:
+uniform vec4 ka, kd, ks;
+uniform float s;
+
+
+// these variables come from the mesh data stored in buffers in gfx card memory
+layout(location = 0) in vec3 vertex;
+layout(location = 1) in vec3 normal;
+
+
+// OUTPUT TO SEND TO THE RASTERIZER FOR THIS VERTEX:
+
+// for Gouraud shading, the key output of the vertex shader is the color
+// calculated based on lighting this vertex
+out vec4 color;
+
+
+void main() {
+
+ // transform the vertex position into "eye space"
+ vec3 v;
+
+ // unit vector from the vertex to the light
+ vec3 l;
+
+ // unit vector from the vertex to the eye point, which is at 0,0,0 in "eye space"
+ vec3 e;
+
+ // normal transformed into "eye space"
+ vec3 n;
+
+ // halfway vector
+ vec3 h;
+
+
+ // calculating lighting output the color for this vertex
+ // ...
+
+
+ // do the standard projection of the incoming vertex
+ gl_Position = proj_matrix * model_view_matrix * vec4(vertex,1);
+}