Algoritmul Diamond-Square este o tehnică procedurală utilizată pentru a genera heightmaps. Acesta funcționează prin subdivizarea recursivă a unui grid și aplicarea unor perturbări aleatorii pentru a crea variații cu aspect natural.
Pentru a îmbunătăți realismul terenului generat, tereneul se poate genera folosind fractal noise, care combină mai multe straturi de zgomot Perlin la frecvențe și amplitudini diferite.
float CalculateFractalNoise(int x, int y) { for (i = 0; i < octaves; i++) { xCoord = (float)x / width * scale * frequency; yCoord = (float)y / height * scale * frequency; perlinValue = Mathf.PerlinNoise(xCoord, yCoord) * 2 - 1; noiseHeight += perlinValue * amplitude; amplitude *= persistence; frequency *= lacunarity; } return (noiseHeight + 1) / 2; // Normalize to 0 - 1 }