summary refs log tree commit diff
path: root/assets
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-02-12 12:55:11 +0100
committerMel <einebeere@gmail.com>2024-02-12 12:55:11 +0100
commitd2b5fc5b3bc648afffa42375706429685ac63794 (patch)
treea2dfbb241e1d46e5616c5884e5f3d685de2a2cb6 /assets
parent588c7e87b7cab270698d43ca5c22d67793ae5fc4 (diff)
downloadmeowcraft-d2b5fc5b3bc648afffa42375706429685ac63794.tar.zst
meowcraft-d2b5fc5b3bc648afffa42375706429685ac63794.zip
Split rendering into own thread and sync through render action lists
Diffstat (limited to 'assets')
-rw-r--r--assets/shaders/block_outline.frag.glsl7
-rw-r--r--assets/shaders/block_outline.vert.glsl15
-rw-r--r--assets/shaders/clouds.frag.glsl16
-rw-r--r--assets/shaders/clouds.vert.glsl21
-rw-r--r--assets/shaders/image_viewer.frag.glsl10
-rw-r--r--assets/shaders/image_viewer.vert.glsl15
-rw-r--r--assets/shaders/terrain.frag.glsl (renamed from assets/shaders/fragment.glsl)0
-rw-r--r--assets/shaders/terrain.vert.glsl (renamed from assets/shaders/vertex.glsl)0
8 files changed, 84 insertions, 0 deletions
diff --git a/assets/shaders/block_outline.frag.glsl b/assets/shaders/block_outline.frag.glsl
new file mode 100644
index 0000000..ed278d8
--- /dev/null
+++ b/assets/shaders/block_outline.frag.glsl
@@ -0,0 +1,7 @@
+#version 330 core
+
+out vec4 color;
+
+void main() {
+    color = vec4(0.0, 0.0, 0.0, 1.0);
+}
\ No newline at end of file
diff --git a/assets/shaders/block_outline.vert.glsl b/assets/shaders/block_outline.vert.glsl
new file mode 100644
index 0000000..3b9dfe9
--- /dev/null
+++ b/assets/shaders/block_outline.vert.glsl
@@ -0,0 +1,15 @@
+#version 330 core
+
+uniform mat4 model_matrix;
+uniform mat4 view_matrix;
+uniform mat4 projection_matrix;
+
+layout (location = 0) in vec3 position;
+
+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;
+}
\ No newline at end of file
diff --git a/assets/shaders/clouds.frag.glsl b/assets/shaders/clouds.frag.glsl
new file mode 100644
index 0000000..c455afd
--- /dev/null
+++ b/assets/shaders/clouds.frag.glsl
@@ -0,0 +1,16 @@
+#version 330 core
+
+uniform vec3 sky_color;
+uniform vec3 sun_direction;
+
+in vec3 surface_normal;
+in float depth;
+out vec4 color;
+
+void main() {
+    float brightness = dot(normalize(surface_normal), normalize(-sun_direction));
+    vec3 diffuse = vec3(1 - clamp(brightness, -0.3, 0.2));
+    vec3 base = vec3(1.0, 1.0, 1.0) * diffuse;
+
+    color = vec4(mix(sky_color, base, 1 - depth), 0.3);
+}
\ No newline at end of file
diff --git a/assets/shaders/clouds.vert.glsl b/assets/shaders/clouds.vert.glsl
new file mode 100644
index 0000000..2a91766
--- /dev/null
+++ b/assets/shaders/clouds.vert.glsl
@@ -0,0 +1,21 @@
+#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;
+
+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;
+    surface_normal = (model_matrix * vec4(normal, 0.0)).xyz;
+    depth = clamp((length(view_position) - 200) / 400, 0.0, 1.0);
+}
\ No newline at end of file
diff --git a/assets/shaders/image_viewer.frag.glsl b/assets/shaders/image_viewer.frag.glsl
new file mode 100644
index 0000000..be2b40c
--- /dev/null
+++ b/assets/shaders/image_viewer.frag.glsl
@@ -0,0 +1,10 @@
+#version 330 core
+
+uniform sampler2D image;
+
+in vec2 frag_tex_coord;
+out vec4 color;
+
+void main() {
+    color = texture(image, frag_tex_coord);
+}
\ No newline at end of file
diff --git a/assets/shaders/image_viewer.vert.glsl b/assets/shaders/image_viewer.vert.glsl
new file mode 100644
index 0000000..1ad43f4
--- /dev/null
+++ b/assets/shaders/image_viewer.vert.glsl
@@ -0,0 +1,15 @@
+#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 vec2 tex_coord;
+
+out vec2 frag_tex_coord;
+
+void main() {
+    gl_Position = projection_matrix * view_matrix * model_matrix * vec4(position, 1.0);
+    frag_tex_coord = tex_coord;
+}
\ No newline at end of file
diff --git a/assets/shaders/fragment.glsl b/assets/shaders/terrain.frag.glsl
index c7ecf97..c7ecf97 100644
--- a/assets/shaders/fragment.glsl
+++ b/assets/shaders/terrain.frag.glsl
diff --git a/assets/shaders/vertex.glsl b/assets/shaders/terrain.vert.glsl
index 6902ad4..6902ad4 100644
--- a/assets/shaders/vertex.glsl
+++ b/assets/shaders/terrain.vert.glsl