From f1f1576543bb4e0f3b9bc4cd0ba4a12a70546c3c Mon Sep 17 00:00:00 2001 From: Frederico Linhares Date: Tue, 30 Aug 2022 17:45:40 -0300 Subject: feat Create 2d graphics pipeline --- glsl/shader_3d.vert.glsl | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 glsl/shader_3d.vert.glsl (limited to 'glsl/shader_3d.vert.glsl') diff --git a/glsl/shader_3d.vert.glsl b/glsl/shader_3d.vert.glsl new file mode 100644 index 0000000..387ad00 --- /dev/null +++ b/glsl/shader_3d.vert.glsl @@ -0,0 +1,54 @@ +/* + * Copyright 2022 Frederico de Oliveira Linhares + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#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 vec2 in_texture_coord; + + +layout(location = 0) out DataTransferObject +{ + vec4 frag_color; + vec2 frag_texture_coord; + vec3 normal; +} out_dto; + +layout(set = 0, binding = 0) uniform UBOViewProjection +{ + mat4 view; + mat4 proj; + vec4 ambient_color; +} ubo_view_projection; + +layout(set = 1, binding = 0) uniform UBOModelInstance +{ + mat4 instances[128]; +} ubo_model_instance; + +void +main() +{ + gl_Position = + ubo_view_projection.proj * ubo_view_projection.view * + ubo_model_instance.instances[gl_InstanceIndex] * vec4(in_position, 1.0); + out_dto.frag_color = ubo_view_projection.ambient_color; + out_dto.frag_texture_coord = in_texture_coord; + out_dto.normal = mat3(ubo_model_instance.instances[gl_InstanceIndex]) * + in_normal; +} -- cgit v1.2.3