2019-05-29 21:48:56 +08:00
|
|
|
#version 450 core
|
|
|
|
|
|
|
|
layout(location = 0) in vec3 Vertex;
|
|
|
|
layout(location = 1) in vec4 Color;
|
|
|
|
|
2020-01-20 20:00:03 +08:00
|
|
|
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
|
2019-05-29 21:48:56 +08:00
|
|
|
{
|
2019-07-17 04:49:49 +08:00
|
|
|
mat4 ortho;
|
2020-01-20 20:00:03 +08:00
|
|
|
|
2019-05-29 21:48:56 +08:00
|
|
|
mat4 projection;
|
2020-01-20 20:00:03 +08:00
|
|
|
mat4 inverse_projection;
|
|
|
|
|
2019-05-29 21:48:56 +08:00
|
|
|
mat4 modelview;
|
2020-01-20 20:00:03 +08:00
|
|
|
mat4 inverse_modelview;
|
|
|
|
|
2019-05-29 21:48:56 +08:00
|
|
|
mat4 mvp;
|
2020-01-20 20:00:03 +08:00
|
|
|
mat4 inverse_mvp;
|
|
|
|
|
2019-07-11 02:42:11 +08:00
|
|
|
vec4 view_pos;
|
2020-01-20 20:00:03 +08:00
|
|
|
vec2 resolution;
|
2019-05-29 21:48:56 +08:00
|
|
|
} world;
|
|
|
|
|
2020-01-20 20:00:03 +08:00
|
|
|
layout(push_constant) uniform Consts
|
|
|
|
{
|
2019-05-29 21:48:56 +08:00
|
|
|
mat4 local_to_world;
|
2020-01-20 20:00:03 +08:00
|
|
|
mat3 normal;
|
|
|
|
vec3 object_position;
|
|
|
|
vec3 object_size;
|
|
|
|
}pc;
|
2019-05-29 21:48:56 +08:00
|
|
|
|
|
|
|
layout(location = 0) out vec4 FragmentColor;
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
FragmentColor=Color;
|
|
|
|
|
2019-07-11 02:42:11 +08:00
|
|
|
gl_Position=vec4(Vertex,1.0)*(pc.local_to_world*world.mvp);
|
2019-05-29 21:48:56 +08:00
|
|
|
}
|