diff options
Diffstat (limited to 'glsl')
-rw-r--r-- | glsl/shader.frag | 14 | ||||
-rw-r--r-- | glsl/shader.vert | 30 |
2 files changed, 44 insertions, 0 deletions
diff --git a/glsl/shader.frag b/glsl/shader.frag new file mode 100644 index 0000000..39aa83c --- /dev/null +++ b/glsl/shader.frag @@ -0,0 +1,14 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 0) in vec3 in_frag_color; +layout(location = 1) in vec2 in_frag_texture_coord; + +layout(location = 0) out vec4 out_color; + +layout(set = 0, binding = 1) uniform sampler2D texture_sampler; + +void main() +{ + out_color = texture(texture_sampler, in_frag_texture_coord); +} diff --git a/glsl/shader.vert b/glsl/shader.vert new file mode 100644 index 0000000..2407255 --- /dev/null +++ b/glsl/shader.vert @@ -0,0 +1,30 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 0) in vec3 in_position; +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 +{ + mat4 model[128]; +} ubo_model_instance; + +layout(set = 1, binding = 0) uniform UBOViewProjection +{ + mat4 view; + mat4 proj; +} ubo_view_projection; + +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; +} |