summaryrefslogtreecommitdiff
path: root/glsl/shader.vert
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2022-08-11 15:46:36 -0300
committerFrederico Linhares <fred@linhares.blue>2022-08-16 16:22:19 -0300
commiteb6fc926be7f29d6d92f238146180d510d69c79e (patch)
treefd619189a699b2a2d6f80b36aa5dbc1f2a0f0f57 /glsl/shader.vert
parentb8838794e135c1b849ac7a8638ca8e948042ef86 (diff)
feat Create directional light
Diffstat (limited to 'glsl/shader.vert')
-rw-r--r--glsl/shader.vert28
1 files changed, 19 insertions, 9 deletions
diff --git a/glsl/shader.vert b/glsl/shader.vert
index 2407255..bc89a8c 100644
--- a/glsl/shader.vert
+++ b/glsl/shader.vert
@@ -6,25 +6,35 @@ layout(location = 1) in vec3 in_normal;
layout(location = 2) in vec3 in_color;
layout(location = 3) in vec2 in_texture_coord;
-layout(location = 0) out vec3 frag_color;
-layout(location = 1) out vec2 frag_texture_coord;
-layout(set = 0, binding = 0) uniform UBOModelInstance
+layout(location = 0) out DataTransferObject
{
- mat4 model[128];
-} ubo_model_instance;
+ vec4 frag_color;
+ vec2 frag_texture_coord;
+ vec3 normal;
+} out_dto;
-layout(set = 1, binding = 0) uniform UBOViewProjection
+layout(set = 0, binding = 0) uniform UBOViewProjection
{
mat4 view;
mat4 proj;
+ vec4 ambient_color;
} ubo_view_projection;
-void main()
+layout(set = 1, binding = 0) uniform UBOModelInstance
+{
+ mat4 model[128];
+} ubo_model_instance;
+
+void
+main()
{
gl_Position =
ubo_view_projection.proj * ubo_view_projection.view *
ubo_model_instance.model[gl_InstanceIndex] * vec4(in_position, 1.0);
- frag_color = in_color;
- frag_texture_coord = in_texture_coord;
+ out_dto.frag_color = vec4(in_color.r, in_color.g, in_color.b, 1.0) *
+ ubo_view_projection.ambient_color;
+ out_dto.frag_texture_coord = in_texture_coord;
+ out_dto.normal = mat3(ubo_model_instance.model[gl_InstanceIndex]) *
+ in_normal;
}