summaryrefslogtreecommitdiff
path: root/data/shaders/pbr-vert.glsl
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2021-05-11 09:09:46 -0400
committerDavid Thompson <dthompson2@worcester.edu>2021-05-11 09:09:46 -0400
commitc7b59a5b66edd96024495b7d94641b9a857a97ef (patch)
tree95d003f177bb7825b31984e609ed6f7eb2a9756a /data/shaders/pbr-vert.glsl
parent685368435ca9962ca402f2bcf2f50c8dc850065a (diff)
graphics: model: Add really rough sketch of PBR lighting model.
Diffstat (limited to 'data/shaders/pbr-vert.glsl')
-rw-r--r--data/shaders/pbr-vert.glsl17
1 files changed, 14 insertions, 3 deletions
diff --git a/data/shaders/pbr-vert.glsl b/data/shaders/pbr-vert.glsl
index f622988..530c564 100644
--- a/data/shaders/pbr-vert.glsl
+++ b/data/shaders/pbr-vert.glsl
@@ -2,11 +2,13 @@
#ifdef GLSL330
layout (location = 0) in vec3 position;
-layout (location = 1) in vec2 texcoord0;
-layout (location = 2) in vec2 texcoord1;
-layout (location = 3) in vec4 color0;
+layout (location = 1) in vec3 normal;
+layout (location = 2) in vec2 texcoord0;
+layout (location = 3) in vec2 texcoord1;
+layout (location = 4) in vec4 color0;
#elif defined(GLSL130)
in vec3 position;
+in vec3 normal;
in vec2 texcoord0;
in vec2 texcoord1;
in vec4 color0;
@@ -18,10 +20,16 @@ attribute vec4 color0;
#endif
#ifdef GLSL120
+varying vec3 fragWorldPos;
+varying vec3 fragCamPos;
+varying vec3 fragNormal;
varying vec2 fragTexcoord0;
varying vec2 fragTexcoord1;
varying vec4 fragColor0;
#else
+out vec3 fragWorldPos;
+out vec3 fragCamPos;
+out vec3 fragNormal;
out vec2 fragTexcoord0;
out vec2 fragTexcoord1;
out vec4 fragColor0;
@@ -32,6 +40,9 @@ uniform mat4 view;
uniform mat4 projection;
void main(void) {
+ fragWorldPos = (model * vec4(position.xyz, 1.0)).xyz;
+ fragCamPos = (view * vec4(0.0, 0.0, 0.0, 1.0)).xyz;
+ fragNormal = normal;
fragTexcoord0 = texcoord0;
fragTexcoord1 = texcoord1;
fragColor0 = color0;