11#version 150
22
3+ #moj_import < fog.glsl>
34#moj_import < tools.glsl>
45#moj_import < light.glsl>
56
@@ -41,14 +42,15 @@ vec3 quaternionRotate(vec3 pos, vec4 q) {
4142}
4243
4344void main() {
45+ vec3 relpos = Position + ChunkOffset;
4446 vec3 position = Position / 2 * pi;
4547 float animation = GameTime * 2048 .;
4648 float anim = GameTime * pi;
4749 float time = GameTime * 2048 ;
4850 float xx = Position.x / 2 * pi;
4951 float yy = Position.y / 2 * pi;
5052 float zz = Position.z / 2 * pi;
51- float dropoff = max ((position .x* position .x) + (position .z* position .z) - 64 ., 512 .) / 512 .;
53+ float dropoff = max ((relpos .x* relpos .x) + (relpos .z* relpos .z) - 128 ., 512 .) / 512 .;
5254 float far = ProjMat[3 ][2 ] * 0.05 / (ProjMat[3 ][2 ] + 2.0 * 0.05 ) / 3.0 * sqrt (3 );
5355
5456 vec3 offset = vec3 (0.0 ,0.0 ,0.0 );
@@ -76,6 +78,8 @@ void main() {
7678 // waving liquid
7779 else if (alpha == 131 ) { // water
7880 time = GameTime * 512 ;
81+ xx = Position.x/ 16 . * 2 * pi;
82+ zz = Position.z/ 16 . * 2 * pi;
7983 if ((mod (Position.y, 1.0 ) > 0.1 ) || (mod (Position.y, 1.0 ) < 0.01 )) {
8084 offset.y = ((sin (time + xx) + cos (time + zz)) * 0.02 ) - 0.02 ;
8185 offset.y += ((sin (time* 7 + xx* 4 .) + cos (time* 7 + zz* 4 .)) * 0.01 ) - 0.01 ;
@@ -87,6 +91,8 @@ void main() {
8791 }
8892 } else if (alpha == 165 ) { // lava
8993 time = GameTime * 128 ;
94+ xx = Position.x/ 16 . * 2 * pi;
95+ zz = Position.z/ 16 . * 2 * pi;
9096 if ((mod (Position.y, 1.0 ) > 0.1 ) || (mod (Position.y, 1.0 ) < 0.01 )) {
9197 offset.y = ((sin (time + xx) + cos (time + zz)) * 0.02 ) - 0.01 ;
9298 offset.y /= dropoff;
@@ -120,7 +126,7 @@ void main() {
120126 }
121127 }
122128
123- vertexDistance = length (( ModelViewMat * vec4 ( Position + ChunkOffset, 1.0 )).xyz );
129+ vertexDistance = cylindrical_distance( ModelViewMat, Position + ChunkOffset);
124130 lightColor = minecraft_sample_lightmap(Sampler2, UV2);
125131 vertexColor = Color;
126132 texCoord0 = UV0;
0 commit comments