From f4b76b1fdd20b87637b51324e4f5feba04a2eb74 Mon Sep 17 00:00:00 2001 From: Mathias Paulin <mathias.paulin@irit.fr> Date: Mon, 12 Apr 2021 08:02:58 +0200 Subject: [PATCH] Fix glsl link error due to in/out explicit location --- .../EmissivityPass/emissivitypass.vert.glsl | 21 +++++++++++++++++++ .../EnvLightPass/envlightpass.vert.glsl | 3 +++ .../LocalLightPass/lightpass.vert.glsl | 3 +++ .../TransparencyPass/oitpass.vert.glsl | 3 +++ .../Shaders/ZPrepass/zprepass.vert.glsl | 4 +++- 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl b/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl index 4e3af29..fde2a9a 100644 --- a/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl +++ b/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl @@ -1,16 +1,37 @@ #include "TransformStructs.glsl" layout (location = 0) in vec3 in_position; +layout (location = 1) in vec3 in_normal; +layout (location = 2) in vec3 in_tangent; +layout (location = 3) in vec3 in_bitangent; layout (location = 4) in vec3 in_texcoord; +layout (location = 5) in vec4 in_color; uniform Transform transform; +layout (location = 0) out vec3 out_position; +layout (location = 1) out vec3 out_normal; layout (location = 2) out vec3 out_texcoord; +layout (location = 3) out vec3 out_vertexcolor; +layout (location = 4) out vec3 out_tangent; void main() { mat4 mvp = transform.proj * transform.view * transform.model; gl_Position = mvp * vec4(in_position, 1.0); + + vec4 pos = transform.model * vec4(in_position, 1.0); + pos /= pos.w; + + vec3 normal = mat3(transform.worldNormal) * in_normal; + vec3 tangent = mat3(transform.model) * in_tangent; + + vec3 eye = -transform.view[3].xyz * mat3(transform.view); + + out_position = vec3(pos); out_texcoord = in_texcoord; + out_normal = normal; + out_tangent = tangent; + out_vertexcolor = in_color.rgb; } diff --git a/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl index 07e1398..7047d6b 100644 --- a/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl +++ b/src/libRender/RadiumNBR/Shaders/EnvLightPass/envlightpass.vert.glsl @@ -5,12 +5,14 @@ layout (location = 1) in vec3 in_normal; layout (location = 2) in vec3 in_tangent; layout (location = 3) in vec3 in_bitangent; layout (location = 4) in vec3 in_texcoord; +layout (location = 5) in vec4 in_color; uniform Transform transform; layout (location = 0) out vec3 out_position;// Position in World Space layout (location = 1) out vec3 out_normal; layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping +layout (location = 3) out vec3 out_vertexcolor; layout (location = 4) out vec3 out_tangent; layout (location = 5) out vec3 out_viewVector; @@ -32,4 +34,5 @@ void main() out_normal = normal; out_tangent = tangent; out_viewVector = vec3(eye - out_position); + out_vertexcolor = in_color.rgb; } diff --git a/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl index 907b721..ff94e0f 100644 --- a/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl +++ b/src/libRender/RadiumNBR/Shaders/LocalLightPass/lightpass.vert.glsl @@ -6,12 +6,14 @@ layout (location = 1) in vec3 in_normal; layout (location = 2) in vec3 in_tangent; layout (location = 3) in vec3 in_bitangent; layout (location = 4) in vec3 in_texcoord; +layout (location = 5) in vec4 in_color; uniform Transform transform; layout (location = 0) out vec3 out_position;// Position in World Space layout (location = 1) out vec3 out_normal; layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping +layout (location = 3) out vec3 out_vertexcolor; layout (location = 4) out vec3 out_tangent; layout (location = 5) out vec3 out_viewVector; layout (location = 6) out vec3 out_lightVector; @@ -36,4 +38,5 @@ void main() out_tangent = tangent; out_viewVector = vec3(eye - out_position); out_lightVector = getLightDirection(light, out_position); + out_vertexcolor = in_color.rgb; } diff --git a/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl b/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl index 907b721..ff94e0f 100644 --- a/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl +++ b/src/libRender/RadiumNBR/Shaders/TransparencyPass/oitpass.vert.glsl @@ -6,12 +6,14 @@ layout (location = 1) in vec3 in_normal; layout (location = 2) in vec3 in_tangent; layout (location = 3) in vec3 in_bitangent; layout (location = 4) in vec3 in_texcoord; +layout (location = 5) in vec4 in_color; uniform Transform transform; layout (location = 0) out vec3 out_position;// Position in World Space layout (location = 1) out vec3 out_normal; layout (location = 2) out vec3 out_texcoord;// Used in case of normal mapping +layout (location = 3) out vec3 out_vertexcolor; layout (location = 4) out vec3 out_tangent; layout (location = 5) out vec3 out_viewVector; layout (location = 6) out vec3 out_lightVector; @@ -36,4 +38,5 @@ void main() out_tangent = tangent; out_viewVector = vec3(eye - out_position); out_lightVector = getLightDirection(light, out_position); + out_vertexcolor = in_color.rgb; } diff --git a/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl b/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl index 938179c..fde2a9a 100644 --- a/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl +++ b/src/libRender/RadiumNBR/Shaders/ZPrepass/zprepass.vert.glsl @@ -5,12 +5,14 @@ layout (location = 1) in vec3 in_normal; layout (location = 2) in vec3 in_tangent; layout (location = 3) in vec3 in_bitangent; layout (location = 4) in vec3 in_texcoord; +layout (location = 5) in vec4 in_color; uniform Transform transform; layout (location = 0) out vec3 out_position; layout (location = 1) out vec3 out_normal; layout (location = 2) out vec3 out_texcoord; +layout (location = 3) out vec3 out_vertexcolor; layout (location = 4) out vec3 out_tangent; @@ -31,5 +33,5 @@ void main() out_texcoord = in_texcoord; out_normal = normal; out_tangent = tangent; - + out_vertexcolor = in_color.rgb; } -- GitLab