O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Arrumar blocos gerados pelo perlin noise na Unity.

Iniciado por Rhyan, 04/11/2020 às 07:52

Usando o seguinte código, eu gero um perlin noise que, a princípio, funciona normalmente, sem muitos bugs, nada.
using UnityEngine;

public class TerrainGenerator : MonoBehaviour
{
	public GameObject currentBlockType;
	public float amp = 10f;
	public float freq = 10f;

    void Start()
    {
		generateTerrain();        
    }

	void generateTerrain() {
		int cols = 100;
		int rows = 100;
		
		for (int x = 0; x < cols; x++) {
			for (int z = 0; z < rows; z++) {
				float y = Mathf.PerlinNoise(x/freq,z/freq) * amp;
				GameObject newBlock =
					GameObject.Instantiate(currentBlockType);
				newBlock.transform.position = new Vector3(x, y, z);
			}
		}
	}
}

O problema é que, ao invés de gerar blocos normais, ele gera algo mais parecido com um retângulo, ou algo do tipo, como se um bloco estivesse dentro do outro, tentando simular uma montanha e conseguindo, mas não da forma que deveria ser.

Isso é bem importante porque é um projeto que estou fazendo de um Minecraft, mas com física e mais, digamos... "fiel a realidade, mas não perdendo o conceito de Minecraft".

Agradeço se puderem me ajudar.
^~^) -Rhyan.

Cara, faz muuuuuuuuuuuuuito tempo que eu mexi com o perling noise, então não sei se vou conseguir te ajudar de uma forma concreta hahahaha
Mas, ao que me parece, o problema tem alguma coisa a ver com o escalonamento do bloco OU dessas variáveis: amp e freq. Talvez, à essa altura do campeonato, você já tenha solucionado o problema, mas... caso ainda esteja tendo, da uma olhada nesse video:



E este aqui, para um código mais complexo:


Citação de: Eliyud online 04/11/2020 às 09:40
Cara, faz muuuuuuuuuuuuuito tempo que eu mexi com o perling noise, então não sei se vou conseguir te ajudar de uma forma concreta hahahaha
Mas, ao que me parece, o problema tem alguma coisa a ver com o escalonamento do bloco OU dessas variáveis: amp e freq. Talvez, à essa altura do campeonato, você já tenha solucionado o problema, mas... caso ainda esteja tendo, da uma olhada nesse video:



E este aqui, para um código mais complexo:



Ooopa, Eliyud! Ainda não resolvi, fiquei um tempo fora do computador resolvendo algumas coisas. Enfim, irei dar uma olhada nos vídeos e já te falo se resolveu! De qualquer forma, obrigado! :DDDD
^~^) -Rhyan.