summaryrefslogtreecommitdiffstats
path: root/dev/a5-artrender/shaders/gouraud.vert
diff options
context:
space:
mode:
authorKT <tran0563@umn.edu>2021-11-09 12:58:15 -0600
committerKT <tran0563@umn.edu>2021-11-09 12:58:15 -0600
commitf965f6daa99cc8d11f732f00002535fdd2e66d65 (patch)
tree09296334e8a3f0be5b054a96130b54055b5ba126 /dev/a5-artrender/shaders/gouraud.vert
parentUpdate a4_dance.md (diff)
downloadcsci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar.gz
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar.bz2
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar.lz
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar.xz
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.tar.zst
csci4611-f965f6daa99cc8d11f732f00002535fdd2e66d65.zip
Publish a5
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);
+}