diff options
Diffstat (limited to 'assets/shaders/terrain.vert.glsl')
| -rw-r--r-- | assets/shaders/terrain.vert.glsl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/assets/shaders/terrain.vert.glsl b/assets/shaders/terrain.vert.glsl new file mode 100644 index 0000000..6902ad4 --- /dev/null +++ b/assets/shaders/terrain.vert.glsl @@ -0,0 +1,30 @@ +#version 330 core + +uniform mat4 model_matrix; +uniform mat4 view_matrix; +uniform mat4 projection_matrix; + +layout (location = 0) in vec3 position; +layout (location = 1) in vec3 normal; +layout (location = 2) in vec2 tex_coord; +layout (location = 3) in float light; +layout (location = 4) in float ambient_occlusion; + +out vec2 frag_tex_coord; +out float frag_light; +out float frag_ambient_occlusion; +out vec3 surface_normal; +out float depth; + +void main() { + vec4 world_position = model_matrix * vec4(position, 1.0); + vec4 view_position = view_matrix * world_position; + vec4 clip_position = projection_matrix * view_position; + + gl_Position = clip_position; + frag_tex_coord = tex_coord; + frag_light = light; + frag_ambient_occlusion = ambient_occlusion; + surface_normal = (model_matrix * vec4(normal, 0.0)).xyz; + depth = clamp((length(view_position) - 75) / 125, 0.0, 1.0); +} \ No newline at end of file |
