diff options
author | KT <tran0563@umn.edu> | 2021-11-09 12:58:15 -0600 |
---|---|---|
committer | KT <tran0563@umn.edu> | 2021-11-09 12:58:15 -0600 |
commit | f965f6daa99cc8d11f732f00002535fdd2e66d65 (patch) | |
tree | 09296334e8a3f0be5b054a96130b54055b5ba126 /dev/a5-artrender/shaders/gouraud.vert | |
parent | Update a4_dance.md (diff) | |
download | csci4611-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.vert | 58 |
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); +} |