From 180aad05decc7eefa87e4e45d6747c48f40e5361 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 17 Apr 2023 12:12:01 -0400 Subject: save --- assets/shaders/Chunk_FS.glsl | 22 ++++++++++++++++++++++ assets/shaders/Chunk_VS.glsl | 35 +++++++++++++++++++++++++++++++++++ assets/shaders/Font_FS.glsl | 28 ++++++++++++++++++++++++++++ assets/shaders/Font_VS.glsl | 13 +++++++++++++ assets/shaders/Gui_FS.glsl | 11 +++++++++++ assets/shaders/Gui_VS.glsl | 12 ++++++++++++ assets/shaders/Quad_FS.glsl | 11 +++++++++++ assets/shaders/Quad_VS.glsl | 12 ++++++++++++ 8 files changed, 144 insertions(+) create mode 100755 assets/shaders/Chunk_FS.glsl create mode 100755 assets/shaders/Chunk_VS.glsl create mode 100755 assets/shaders/Font_FS.glsl create mode 100755 assets/shaders/Font_VS.glsl create mode 100755 assets/shaders/Gui_FS.glsl create mode 100755 assets/shaders/Gui_VS.glsl create mode 100755 assets/shaders/Quad_FS.glsl create mode 100755 assets/shaders/Quad_VS.glsl (limited to 'assets/shaders') diff --git a/assets/shaders/Chunk_FS.glsl b/assets/shaders/Chunk_FS.glsl new file mode 100755 index 0000000..fa1d5f6 --- /dev/null +++ b/assets/shaders/Chunk_FS.glsl @@ -0,0 +1,22 @@ +#version 130 +#extension GL_EXT_texture_array : enable + +in vec2 pass_textureCoordinates; +in float visibility; +in float pass_layer; +in float pass_baseLightingValue; + +out vec4 out_Color; + +uniform sampler2DArray modelTexture; +uniform vec3 tint; +uniform vec3 skyColor; + +void main(void){ + vec4 textureColour = texture2DArray(modelTexture,vec3(pass_textureCoordinates, pass_layer)); + if(textureColour.a<0.5) discard; + out_Color = textureColour; + out_Color.rgb += tint.xyz; + out_Color.rgb *= pass_baseLightingValue; + out_Color = mix(vec4(skyColor.x,skyColor.y,skyColor.z,1.0),out_Color, visibility); +} \ No newline at end of file diff --git a/assets/shaders/Chunk_VS.glsl b/assets/shaders/Chunk_VS.glsl new file mode 100755 index 0000000..6c5e3dc --- /dev/null +++ b/assets/shaders/Chunk_VS.glsl @@ -0,0 +1,35 @@ +#version 130 + +in vec3 position; +in vec2 textureCoordinates; +in float baseLightingValue; +in float layer; + +out vec2 pass_textureCoordinates; +out float pass_baseLightingValue; +out float pass_layer; +out float visibility; + +uniform mat4 transformationMatrix; +uniform mat4 projectionMatrix; +uniform mat4 viewMatrix; +uniform vec3 playerPosition; +uniform int renderDistance; + +const float density = 0.5; +const float gradient = 1.5; + +void main(void){ + vec4 worldPosition = transformationMatrix * vec4(position,1.0); + gl_Position = projectionMatrix * viewMatrix * worldPosition; + pass_textureCoordinates = textureCoordinates; + pass_layer = layer; + pass_baseLightingValue = baseLightingValue; + + float distance = sqrt(pow(worldPosition.x - playerPosition.x, 2)+ pow(worldPosition.z - playerPosition.z,2)); + visibility = 1; + if(distance / 16 > renderDistance-2){ + visibility = 1-(distance - (16*(renderDistance-2)))/16.0; + } + visibility = clamp(visibility,0.0,1.0); +} diff --git a/assets/shaders/Font_FS.glsl b/assets/shaders/Font_FS.glsl new file mode 100755 index 0000000..2b6f33b --- /dev/null +++ b/assets/shaders/Font_FS.glsl @@ -0,0 +1,28 @@ +#version 330 + +in vec2 pass_textureCoords; + +out vec4 out_color; + +uniform vec3 color; +uniform sampler2D fontAtlas; + +const float width = 0.5; +const float edge = 0.1; + +const float borderWidth = 0.0; +const float borderEdge = 0.5; + +const vec2 offset = vec2(0, 0.0); + +const vec3 outlineColour = vec3(1.0,0.0,0.0); + +void main(void){ + float distance = 1.0 - texture(fontAtlas, pass_textureCoords).a; + float alpha = 1.0 - smoothstep(width, width + edge, distance); + float distance2 = 1.0 - texture(fontAtlas, pass_textureCoords + offset).a; + float outlineAlpha = 1.0 - smoothstep(borderWidth, borderWidth + borderEdge, distance2); + float overallAlpha = alpha + (1.0 - alpha) * outlineAlpha; + vec3 overallColor = mix(outlineColour, color, alpha / overallAlpha); + out_color = vec4(overallColor, overallAlpha); +} diff --git a/assets/shaders/Font_VS.glsl b/assets/shaders/Font_VS.glsl new file mode 100755 index 0000000..400061e --- /dev/null +++ b/assets/shaders/Font_VS.glsl @@ -0,0 +1,13 @@ +#version 330 + +in vec2 position; +in vec2 textureCoords; + +out vec2 pass_textureCoords; + +uniform vec2 translation; + +void main(void){ + gl_Position = vec4(position + translation * vec2(2.0, -2.0), 0.0, 1.0); + pass_textureCoords = textureCoords; +} diff --git a/assets/shaders/Gui_FS.glsl b/assets/shaders/Gui_FS.glsl new file mode 100755 index 0000000..a9fc342 --- /dev/null +++ b/assets/shaders/Gui_FS.glsl @@ -0,0 +1,11 @@ +#version 140 + +in vec2 textureCoords; + +out vec4 out_Color; + +uniform sampler2D guiTexture; + +void main(void){ + out_Color = texture(guiTexture,vec2(textureCoords.x, textureCoords.y)); +} diff --git a/assets/shaders/Gui_VS.glsl b/assets/shaders/Gui_VS.glsl new file mode 100755 index 0000000..0bd6d2c --- /dev/null +++ b/assets/shaders/Gui_VS.glsl @@ -0,0 +1,12 @@ +#version 140 + +in vec2 position; + +out vec2 textureCoords; + +uniform mat4 transformationMatrix; + +void main(void){ + gl_Position = transformationMatrix * vec4(position.x , position.y, 0.0, 1.0); + textureCoords = vec2((position.x+1.0)/2.0, 1 - (position.y+1.0)/2.0); +} diff --git a/assets/shaders/Quad_FS.glsl b/assets/shaders/Quad_FS.glsl new file mode 100755 index 0000000..b1f17b3 --- /dev/null +++ b/assets/shaders/Quad_FS.glsl @@ -0,0 +1,11 @@ +#version 140 + +in vec2 textureCoords; + +out vec4 out_Color; + +uniform vec4 color; + +void main(void){ + out_Color = color; +} diff --git a/assets/shaders/Quad_VS.glsl b/assets/shaders/Quad_VS.glsl new file mode 100755 index 0000000..0bd6d2c --- /dev/null +++ b/assets/shaders/Quad_VS.glsl @@ -0,0 +1,12 @@ +#version 140 + +in vec2 position; + +out vec2 textureCoords; + +uniform mat4 transformationMatrix; + +void main(void){ + gl_Position = transformationMatrix * vec4(position.x , position.y, 0.0, 1.0); + textureCoords = vec2((position.x+1.0)/2.0, 1 - (position.y+1.0)/2.0); +} -- cgit v1.2.3-freya