diff --git a/src/bin/envmap/perlin.wgsl b/src/bin/envmap/perlin.wgsl index e845b49..c478595 100644 --- a/src/bin/envmap/perlin.wgsl +++ b/src/bin/envmap/perlin.wgsl @@ -22,14 +22,15 @@ fn on_vertex(in: Vertex) -> Varying { @fragment fn on_fragment(in: Varying) -> @location(0) vec4f { - let sharp_area = perlin_noise(Params(1, 3, 0.9, 2.0), 0.1 * in.world); - let sharp_base = perlin_noise(Params(1, 6, 0.9, 2.0), 0.1 * in.world); - let cloud_base = perlin_noise(Params(2, 8, 0.6, 2.0), 0.1 * in.world); - let sharp_detail = structured_noise(Params(11, 8, 3.0, 2.0), in.world); - let cloud_detail1 = perlin_noise(Params(12, 8, 0.7, 2.0), in.world); - let cloud_detail2 = perlin_noise(Params(13, 8, 0.7, 2.0), in.world); - let dust = sharp_noise(Params(21, 8, 0.9, 2.0), in.world); - let stars = sharp_noise(Params(22, 8, 2.7, 2.0), in.world); + let point = 30. * (normalize(in.world + vec3(0., 0., 30.)) - vec3(0., 0., 1.)); + let sharp_area = perlin_noise(Params(1, 3, 0.9, 2.0), 0.1 * point); + let sharp_base = perlin_noise(Params(1, 6, 0.9, 2.0), 0.1 * point); + let cloud_base = perlin_noise(Params(2, 8, 0.6, 2.0), 0.1 * point); + let sharp_detail = structured_noise(Params(11, 8, 3.0, 2.0), point); + let cloud_detail1 = perlin_noise(Params(12, 8, 0.7, 2.0), point); + let cloud_detail2 = perlin_noise(Params(13, 8, 0.7, 2.0), point); + let dust = sharp_noise(Params(21, 8, 0.9, 2.0), point); + let stars = sharp_noise(Params(22, 8, 2.7, 2.0), point); let cloud = exp(5.0 * (cloud_base - 1.0)); let cloud1 = cloud * (2.0 + cloud_detail1);