float perlin_noise_1d(float x);floor to find grid pointfloat perlin_fbm_1d(float x);
float perlin_noise(vec2 point);float perlin_fbm(vec2 point);float turbulence(vec2 point);These images are zoomed, don’t expect the exact same output!
Per-fragment:
mix() for interpolation)uniform float t…std::shared_ptr<Mesh> build_terrain_mesh(Array2D<float> const& height_map) {
std::pair<size_t, size_t> const grid_size = height_map.size();
std::vector<vec3> vertices(grid_size.first * grid_size.second);
std::vector<Mesh::Face> faces;
// [...]
return std::make_shared<Mesh>(vertices, faces);
}
utils/array2d.h)