diff --git a/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl b/src/libRender/RadiumNBR/Shaders/EmissivityPass/emissivitypass.vert.glsl index 4e3af293b79b23df69cb2beb7cf25d1a3d035747..fde2a9a03acfc206848ae5c13497771be4b32fbe 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 07e139873d24517ca13c50913c11bdc036a27f20..7047d6b08cec38e91777e86108145ca0d861ed32 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 907b72172bd5036e9518d53908f60f10a73c5624..ff94e0fe69ff1df276ffa0b5a83b4d08d85ab7bb 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 907b72172bd5036e9518d53908f60f10a73c5624..ff94e0fe69ff1df276ffa0b5a83b4d08d85ab7bb 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 938179c42282553b631697998a2ea72443ffec0a..fde2a9a03acfc206848ae5c13497771be4b32fbe 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; }