// Copyright 2022 Simon Boyé #version 450 layout(binding = 0) uniform Uniforms { mat4 scene_from_model; mat4 projection_from_scene; vec2 screen_size; float lod; } uniforms; layout(location = 0) in vec3 in_position; layout(location = 1) in vec3 in_position2; layout(location = 2) in vec3 in_normal; layout(location = 3) in vec3 in_color; layout(location = 0) out vec4 out_position; layout(location = 1) out vec3 out_normal; layout(location = 2) out vec3 out_color; void main() { // float lod = clamp( // 2.0 * dot(transpose(uniforms.scene_from_model)[0].xyz, in_position) + 0.5, // 0.0, 1.0 // ); // vec3 position = mix(in_position2, in_position, lod); vec3 position = in_position; out_position = uniforms.projection_from_scene * uniforms.scene_from_model * vec4(position, 1.0); out_normal = in_normal; out_color = in_color; gl_Position = out_position; }