summaryrefslogtreecommitdiff
path: root/assets/shaders/Chunk_VS.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'assets/shaders/Chunk_VS.glsl')
-rwxr-xr-xassets/shaders/Chunk_VS.glsl35
1 files changed, 35 insertions, 0 deletions
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);
+}