diff options
author | Frederico Linhares <fred@linhares.blue> | 2022-08-11 15:46:36 -0300 |
---|---|---|
committer | Frederico Linhares <fred@linhares.blue> | 2022-08-16 16:22:19 -0300 |
commit | eb6fc926be7f29d6d92f238146180d510d69c79e (patch) | |
tree | fd619189a699b2a2d6f80b36aa5dbc1f2a0f0f57 /glsl/shader.vert | |
parent | b8838794e135c1b849ac7a8638ca8e948042ef86 (diff) |
feat Create directional light
Diffstat (limited to 'glsl/shader.vert')
-rw-r--r-- | glsl/shader.vert | 28 |
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; } |