diff options
author | Matt Strapp <matt@mattstrapp.net> | 2021-11-23 10:45:38 -0600 |
---|---|---|
committer | Matt Strapp <matt@mattstrapp.net> | 2021-11-23 10:45:38 -0600 |
commit | b623569b45d256582e962c5a464c0b16b8bd1383 (patch) | |
tree | c52429d6e4703800eaa39ce89c342fd3c29c3034 /dev/a5-artrender/shaders/gouraud.vert | |
parent | do a4 (diff) | |
parent | Update artrender_app.cc (diff) | |
download | csci4611-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 'dev/a5-artrender/shaders/gouraud.vert')
-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); +} |