VoxelEngine2/shaders/cuboid.vert

30 lines
No EOL
761 B
GLSL

#version 450
layout(binding = 0) uniform UniformBufferObject {
mat4 model;
mat4 geom_rot;
mat4 view;
mat4 proj;
bool[16] use_geom_shader;
} ubo;
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inColor;
layout(location = 2) in vec2 inTexCoord;
layout(location = 3) in vec3 inSize;
layout(location = 0) out vec3 geoColor;
layout(location = 1) out vec2 geoTexCoord;
layout(location = 2) out vec3 geoSize;
void main() {
if (ubo.use_geom_shader[0]) {
gl_Position = ubo.geom_rot * ubo.model * vec4(inPosition, 1.0);
} else {
gl_Position = ubo.proj * ubo.view * ubo.geom_rot * ubo.model * vec4(inPosition, 1.0);
}
geoColor = inColor;
geoTexCoord = inTexCoord;
geoSize = inSize;
}