From c7b59a5b66edd96024495b7d94641b9a857a97ef Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 11 May 2021 09:09:46 -0400 Subject: graphics: model: Add really rough sketch of PBR lighting model. --- data/shaders/pbr-vert.glsl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'data/shaders/pbr-vert.glsl') 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; -- cgit v1.2.3