35 lines
708 B
GLSL
35 lines
708 B
GLSL
|
|
#version 460 core
|
||
|
|
// layout (location = 0) in vec3 a_position;
|
||
|
|
|
||
|
|
struct PositionData {
|
||
|
|
float x;
|
||
|
|
float y;
|
||
|
|
float z;
|
||
|
|
};
|
||
|
|
|
||
|
|
layout (binding = 0, std430) restrict readonly buffer _positions {
|
||
|
|
PositionData pos_data[];
|
||
|
|
};
|
||
|
|
|
||
|
|
vec4 getPosition(int index) {
|
||
|
|
return vec4(
|
||
|
|
pos_data[index].x,
|
||
|
|
pos_data[index].y,
|
||
|
|
pos_data[index].z,
|
||
|
|
1
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
layout (binding = 0, std140) uniform SharedMatrices {
|
||
|
|
mat4 projection;
|
||
|
|
mat4 cam_matrix;
|
||
|
|
};
|
||
|
|
|
||
|
|
out vec3 v_texcoord;
|
||
|
|
|
||
|
|
void main() {
|
||
|
|
vec4 a_position = getPosition(gl_VertexID);
|
||
|
|
vec4 WVP_position = projection * mat4(mat3(cam_matrix)) * a_position;
|
||
|
|
gl_Position = WVP_position.xyww;
|
||
|
|
v_texcoord = a_position.xyz;
|
||
|
|
}
|