Unity에서 높이맵(Heightmap)은 지형(Terrain) 시스템에서 지형의 높이 데이터를 표현하기 위해 사용되는 흑백 이미지입니다. 높이맵을 사용하면 지형의 굴곡과 높낮이를 쉽게 설정할 수 있어, 복잡한 지형을 손쉽게 생성하고 조작할 수 있습니다.
높이맵은 흑백 이미지로, 각 픽셀의 밝기(그레이스케일 값)에 따라 지형의 높이가 결정됩니다. 텍스쳐의 픽셀 하나와 생성할 정점 하나를 매칭시킵니다. 픽셀의 x위치는 생성된 정점의 x위치, 픽셀의 y위치는 생성된 정점의 z위치, 픽셀의 색상값은 생성된 정점위 y위치입니다. 일반적으로 흰색에 가까울수록 지형이 높고, 검은색에 가까울수록 지형이 낮습니다.
Unity에서 지형을 만들 때, Terrain
컴포넌트의 Heightmap
Import 기능을 통해 외부에서 만든 높이맵 이미지를 사용할 수 있습니다. Unity는 이 높이맵 이미지를 읽어 픽셀 값에 따라 Terrain의 각 지점의 높이를 설정합니다.
높이맵 이미지의 해상도는 Terrain의 디테일에 직접적인 영향을 미칩니다. 높은 해상도의 높이맵을 사용하면 더 세밀한 지형을 만들 수 있지만, 성능에 영향을 줄 수 있습니다. 해상도는 2의 거듭제곱 값을 사용하는 것이 일반적입니다.(예: 1024 x 1024)
Unity 내에서 제공되는 Terrain 툴을 사용해 직접 지형을 수정할 수 있으며, 이 수정 사항은 Unity 내부적으로 높이맵 데이터로 변환됩니다. 외부 툴(예: Photoshop, GIMP)을 사용하여 높이맵 이미지를 생성하거나 수정할 수도 있습니다.
장점 : 적은 메모리로 넓은 지형을 표현 가능합니다. 높이맵은 실제 지형 데이터를 바탕으로 현실적인 지형을 게임에 구현할 때 매우 유용합니다. 자연스러운 산, 언덕, 계곡 등의 지형을 생성할 수 있으며, 이를 기반으로 추가 텍스처, 식생, 물 등을 배치해 더욱 생동감 있는 환경을 만들 수 있습니다.
단점 : 지형 구조가 단조롭습니다. 동굴, 절벽, 급경사, 구멍등이 표현이 안됩니다. 실제지형과 괴리감이 느껴집니다.