본문 바로가기

PerlinNoise2

[유니티] 절차적 지형 생성 1 - Perlin Noise 목표 펄린 노이즈로 마인크래프트같은 3D 지형을 생성한다. 이전 포스팅에서 학습한 Perlin noise를 이용하여 Height 값에 따라 블록을 배치한 모습 겉보기엔 괜찮은 지형이 생성되었으나 메모리 낭비가 너무 심하다. 아무것도 하지 않았지만 FPS가 약 20으로 현저히 낮은 수치를 기록하고있다. FPS가 낮은 이유는 큐브 오브젝트가 6면을 모두 메쉬로 채우기 때문인데 이를 해결하기 위해서는 보이지 않는 면을 컬링해야한다. 메쉬 생성 Instantiate(cube, new Vector3(x, y, z), Quaternion.identity); 기존의 큐브를 생성하는 코드를 지우고 아래의 메쉬를 생성하는 코드로 바꿔주었다. Vector3[] vertices = { new Vector3 (0, 0, 0).. 2021. 11. 15.
[유니티] 절차적 섬 생성 - Perlin Noise Perlin Noise란? 연속적인 일련의 의사 난수 값을 생성하는 알고리즘으로 유기적인 모양의 노이즈를 생성한다. 왼쪽 노이즈는 랜덤으로 생성된 노이즈로, 유기적인 연결 없이 단절된 형태를 띠기 때문에 지형 생성 노이즈로 적합하지 않다. 펄린 노이즈 파라미터 시드 (seed) 주파수 (frequency) 옥타브 (octave) 시드 : 무작위 생성을 위한 값 주파수 : 노이즈의 간격과 관련된 값. 주파수가 클수록 노이즈가 세밀해진다. 고주파 노이즈 저주파 노이즈 옥타브 : 여러 주파수의 노이즈를 중첩시킬 때 쓰는 값 옥타브가 커질수록 높은 주파수와 낮은 진폭의 노이즈가 중첩된다. 중첩되지 않은 여러 노이즈 중첩된 노이즈 처음 노이즈가 전체적인 형태를 결정하고 이후 다른 노이즈들이 합쳐지면서 디테일한 노.. 2021. 11. 15.