This is an old revision of the document!
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
}