Orange/src/Orange/Render/Shaders/vs_Mesh.vert

36 lines
669 B
GLSL
Raw Normal View History

2022-08-12 20:08:28 +01:00
#version 450
2022-08-13 21:41:19 +01:00
#extension GL_ARB_shader_draw_parameters : enable
2022-08-12 20:08:28 +01:00
2022-08-13 22:15:23 +01:00
struct UniformData
{
2022-08-12 21:18:11 +01:00
mat4 projection;
mat4 view;
2022-08-13 22:15:23 +01:00
};
layout(push_constant) uniform p_constants_t
{
uint frame;
} p_constants;
layout(binding = 0) uniform u_data_t
{
UniformData frame[4];
2022-08-12 21:18:11 +01:00
} u_data;
2022-08-12 20:08:28 +01:00
2022-08-13 22:15:23 +01:00
2022-08-12 21:18:11 +01:00
layout(location = 0) in vec3 i_pos;
layout(location = 1) in vec2 i_uv;
layout(location = 2) in vec3 i_normal;
2022-08-12 20:08:28 +01:00
2022-08-13 21:41:19 +01:00
layout(location = 0) out flat int o_id;
layout(location = 1) out vec2 o_uv;
2022-08-12 20:08:28 +01:00
void main()
{
2022-08-13 22:15:23 +01:00
gl_Position =
u_data.frame[p_constants.frame].projection *
u_data.frame[p_constants.frame].view *
vec4(i_pos, 1.0);
2022-08-13 21:41:19 +01:00
o_id = gl_DrawIDARB;
o_uv = i_uv;
2022-08-12 20:08:28 +01:00
}