Perlin noise fixes

This commit is contained in:
Nikita Lisitsa 2021-03-07 21:07:00 +03:00
parent 3482eceea3
commit 36bfcb135e

View file

@ -93,13 +93,13 @@ namespace psemek::pcg
ip[i] = geom::clamp<std::size_t>(std::floor(p[i]), {0, static_cast<std::size_t>(grad_map_.dim(i)) - 2}); ip[i] = geom::clamp<std::size_t>(std::floor(p[i]), {0, static_cast<std::size_t>(grad_map_.dim(i)) - 2});
} }
geom::vector<float, N> t = p - geom::cast<float>(ip); geom::vector<T, N> t = p - geom::cast<T>(ip);
T values[1 << N]; T values[1 << N];
for (std::size_t mask = 0; mask < (1 << N); ++mask) for (std::size_t mask = 0; mask < (1 << N); ++mask)
{ {
geom::vector<float, N> tt; geom::vector<T, N> tt;
std::array<std::size_t, N> ii; std::array<std::size_t, N> ii;
for (std::size_t i = 0; i < N; ++i) for (std::size_t i = 0; i < N; ++i)
{ {
@ -122,7 +122,7 @@ namespace psemek::pcg
values[mask] = smoothstep(values[mask], values[mask | (1 << i)], t[i]); values[mask] = smoothstep(values[mask], values[mask | (1 << i)], t[i]);
} }
return 0.5f * (1.f + std::sqrt(2.f) * values[0]); return 0.5 * (1. + std::sqrt(2.) * values[0]);
} }
} }