voglio generare qualcosa di simile:
Io uso Perlin Noise con curva stretta, il mio codice produce quelle scogliere: .Cliffs generazione del terreno in Minecraft-come il gioco
for (int x = 0; x < sizeX; x++)
{
for (int z = 0; z < sizeZ; z++)
{
int floorY = map.GetMaxYNotWater(x, z);
float n = hillsNoise.Noise(x, z);
int hillY = (int)(curveHills.Evaluate(n) * 80f);
if (hillY > floorY + 5)
{
for (int y = hillY; y > floorY; y--)
{
map.SetBlock(GetBlock(y), new Vector3i(x, y, z));
}
}
}
}
Come posso "tagliarli" per appendere oggetti?
ho cercato di fare in questo modo con la curva aggiuntiva:
for (int x = 0; x < sizeX; x++)
{
for (int z = 0; z < sizeZ; z++)
{
int floorY = map.GetMaxYNotWater(x, z);
float n = hillsNoise.Noise(x, z);
int hillY = (int)(curveHills.Evaluate(n) * 80f);
if (hillY > floorY + 5)
{
int c = 0;
int max = hillY - floorY;
max = (int)(max * curveHillsFull.Evaluate(n)) + 1;
for (int y = hillY; y > floorY && c < max; y--, c++)
{
map.SetBlock(GetBlock(y), new Vector3i(x, y, z));
}
}
}
}
ma produce isole volanti. Quindi, cosa posso fare per ottenere i primi risultati di screenshot?
cosa succede se si "sottrae" il risultato del secondo algoritmo per il risultato del primo ? Questo farebbe dei buchi, immagino che – BlackBear
@BlackBear no, che taglierà dal centro ma ho bisogno di tagliarlo da fuori – Vlad