diff --git a/shadersrc/tri_mesh.vert b/shadersrc/tri_mesh.vert new file mode 100644 index 0000000..8bdb125 --- /dev/null +++ b/shadersrc/tri_mesh.vert @@ -0,0 +1,37 @@ +#version 460 +layout (location = 0) in vec3 vPosition; +layout (location = 1) in vec3 vNormal; +layout (location = 2) in vec4 vColor; + +layout (location = 0) out vec4 outColor; + +layout(set = 0, binding = 0) uniform CameraBuffer{ + mat4 view; + mat4 proj; + mat4 viewproj; +} cameraData; + +struct ObjectData{ + mat4 model; +}; + +//all object matrices +layout(std140,set = 1, binding = 0) readonly buffer ObjectBuffer{ + + ObjectData objects[]; +} objectBuffer; + +//push constants block +layout( push_constant ) uniform constants +{ + vec4 data; + mat4 render_matrix; +} PushConstants; + +void main() +{ + mat4 modelMatrix = objectBuffer.objects[gl_BaseInstance].model; + mat4 transformMatrix = (cameraData.viewproj * modelMatrix); + gl_Position = transformMatrix * vec4(vPosition, 1.0f); + outColor = vColor; +}