Version: Unity 6.0 (6000.0)
언어 : 한국어
윈드 레퍼런스
하이트맵 작업

풀 및 기타 디테일

터레인의 표면에는 풀 덤불이나 기타 작은 오브젝트(예: 돌)가 존재할 수 있습니다. Unity는 원하는 디테일 수준(LOD)과 성능에 따라 텍스처링된 사각형 또는 전체 메시를 사용하여 이러한 오브젝트를 렌더링할 수 있습니다.

인스턴싱 세부 정보는 HDRP(고해상도 렌더 파이프라인)를 비롯한 모든 렌더 파이프라인에 작동합니다.

풀이 있는 터레인
풀이 있는 터레인

터레인 디테일은 여러 가지 모드에서 사용할 수 있으며 각 모드는 게임 개발 중에 서로 다른 용도로 사용됩니다.

Mode 설명
Instanced mesh 이 모드는 터레인에 임의의 메시를 원하는 수만큼 배치해야 하는 대부분의 시나리오에 가장 적합하기 때문에 Unity에서 권장하는 모드입니다.

인스턴스화된 메시를 추가하려면 Add Detail Mesh를 선택하고 Use GPU Instancing 옵션을 활성화합니다.
Vertex Lit mesh 렌더링에 GPU 인스턴싱을 사용하지 않습니다. 대신 모든 디테일 인스턴스를 하나의 메시에 결합하기 때문에 간단한 셰이딩과 구현 가능한 인스턴스 수에 대한 제한이 발생합니다.

버텍스 릿 메시를 추가하려면 Add Detail Mesh를 선택하고 Render ModeVertex Lit으로 설정합니다.
Grass mesh 버텍스 릿 메시와 유사하게 작동하지만 Unity는 이러한 메시를 풀로 취급하므로 항상 노멀이 위쪽을 향하고 바람에 따라 움직입니다.

풀 메시를 추가하려면 Add Detail Mesh를 선택하고 Render ModeGrass로 설정합니다.
Grass Texture 텍스처에서 바람에 움직이는 풀 사각형 메시를 직접 생성할 수 있습니다. 커스텀 메시를 지정할 필요는 없으며, 빌보드 효과를 위해 풀 사각형이 항상 카메라를 향하도록 만들 수 있는 옵션도 있습니다.

이 옵션에서 Add Grass Texture를 선택합니다.

페인트 디테일

풀 및 디테일 페인팅을 활성화하려면 Terrain 인스펙터 툴바의 Paint Details 버튼을 선택합니다.

Terrain 인스펙터에서 디테일 페인팅
Terrain 인스펙터에서 디테일 페인팅

오버레이에서 Paint Details에 액세스하려면 다음 단계를 따르십시오.

  1. Terrain Tools 오버레이에서 Foliage Mode Foliage Mode Menu를 선택합니다. Folier Mode 툴이 Terrain Tools 오버레이 끝에 표시됩니다.
  2. Terrain Tools 오버레이에서 사용 가능한 Foliage Mode 툴에서 Paint Details Paint Details를 선택합니다.

처음에는 터레인에 사용할 수 있는 풀이나 디테일이 없습니다. 인스펙터에서 Edit Details 버튼을 클릭하여 Add Detail MeshAdd Grass Texture 옵션이 있는 메뉴를 표시합니다. 이러한 옵션을 클릭하면 페인팅할 터레인에 추가할 에셋을 선택할 수 있는 창이 나타납니다.

디테일 메시 추가

Add Detail Mesh 창
Add Detail Mesh 창

프로젝트에서 프리팹을 선택하려면 Detail Prefab 필드를 사용합니다. 자연스러운 모습을 만들기 위해 무작위 인자가 각 메시에 영향을 주어 크기와 컬러를 결정합니다. Unity는 Perlin 노이즈 알고리즘을 사용하여 이러한 무작위 인자를 생성합니다.

Min Width, Max Width, Min Height, Max Height 값은 메시가 무작위로 생성되는 X축과 Y축을 따르는 위쪽과 아래쪽 스케일링을 지정합니다.

Align to Ground (%) 값은 디테일 축이 터레인 노멀에 얼마나 정렬되는지를 지정합니다. 0은 정렬되지 않은 것이며 100은 노멀에 완전히 정렬된 것입니다.

Position Jitter (%)는 디테일 분포의 무작위성을 정렬에서 무작위로 제어합니다. 이는 Quality settings에서 레거시 분포가 비활성화된 경우에만 사용할 수 있습니다.

Noise Seed 설정은 난수 제너레이터 시드를 설정합니다. 각 시드 값은 고유한 생성을 나타냅니다. 두 가지 유형의 디테일에 대해 동일한 시드를 설정하면 생성된 인스턴스가 동일해집니다. Noise Spread 값은 X-Z 평면에 대한 노이즈 패턴의 스케일링을 나타내며, 값이 높을수록 주어진 영역 내에서 더 많은 배리에이션이 있음을 나타냅니다.

Hole Edge Padding (%) 설정은 디테일 오브젝트가 구멍 영역 가장자리에서 얼마나 떨어져 있는지를 제어합니다. 자세한 내용은 DetailPrototype.holeEdgePadding을 참조하십시오.

Detail Density 값은 크기를 기준으로 디테일의 밀도를 제어합니다. Terrain Settings에서 설정된 ‘커버리지’ 디테일 흩뿌리기 모드에서 이를 활성화할 수 있습니다.

Healthy ColorDry Color 설정은 컬러 배리에이션을 제어합니다. Unity는 건강하게 보이는 컬러와 건조하게 보이는 컬러 사이에 선형 보간을 수행하고 메시 크기에 따라 컬러를 선택합니다. 예를 들어 시스템이 더 큰 크기의 메시를 더 건강한 것으로 간주한다면, 이러한 메시에 대한 선형 보간 결과는 Healthy Color 색조 쪽으로 더 기울어집니다. 이러한 컬러 설정은 인스턴스화된 메시에 영향을 미치지 않기 때문에 Use GPU Instancing을 선택하면 사라집니다.

Affected by Density Scale 체크박스는 Terrain Settings에 설정된 Detail Density Scale 설정이 이 디테일에 영향을 미치는지 결정합니다.

Render ModeVertex Lit 또는 Grass로 설정할 수 있습니다.

렌더 모드 설명
Vertex Lit 씬에서 바람에 움직이지 않는 견고한 버텍스 릿 게임 오브젝트로 디테일 메시를 렌더링합니다.
Grass Grass Textures와 유사한 단순화된 조명으로 씬의 디테일 메시를 렌더링하고 바람에 움직입니다.

참고: Vertex Lit 또는 Grass 렌더 모드를 사용하여 디테일에 텍스처를 적용하려면 MainTex 머티리얼 프로퍼티(빌트인/URP에서 Base Color Map의 기본 프로퍼티 이름)에 텍스처를 할당합니다. 인스턴스화되지 않은 디테일에 대해서는 다른 머티리얼 프로퍼티가 고려되지 않습니다.

GPU 인스턴싱 사용

GPU 인스턴싱을 사용하여 디테일 메시를 렌더링할지 여부를 지정할 수 있습니다. GPU 인스턴싱을 사용하면 Unity는 프리팹에 지정된 머티리얼과 셰이더를 렌더링에 사용합니다. 이렇게 하면 셰이더에서 더 많은 커스터마이징을 수행하고 Shader Graph를 사용할 수 있습니다.

Unity는 여전히 각 인스턴스에 Width 및 Height 노이즈를 적용하지만, Healthy Color/Dry Color 노이즈는 비활성화합니다. 셰이더에서 다른 무작위화와 함께 자체적인 컬러 배리에이션 기법을 사용할 수 있습니다.

내부적으로 Unity GPU 인스턴싱 제한 사항 중 일부가 렌더링에 영향을 미칩니다. 예시:

  • 타겟 플랫폼이 GPU 인스턴싱을 지원해야 합니다.
  • 셰이더가 GPU 인스턴싱을 지원해야 합니다. (대부분의 셰이더가 지원합니다.)
  • 오브젝트는 1023개 이하의 배치로 렌더링됩니다.
  • 인스턴스화된 라이트 프로브 조명 또는 라이트맵 조명은 지원되지 않습니다.

Unity가 모든 프레임마다 인스턴싱 상수 버퍼를 동적으로 빌드하는 일반 인스턴싱과 달리 인스턴싱 디테일에는 타겟 하드웨어에서 허용하는 경우 GPU 메모리 사용량이 약간 증가하는 대신 CPU 및 GPU 성능을 향상시키기 위한 지속적인 상수 버퍼가 있습니다.

Use GPU Instancing을 선택하면 Render Mode 설정이 회색으로 표시되고 사용할 수 없습니다.

풀 텍스처 추가

Grass Texture 추가 창
Grass Texture 추가 창

Grass Texture 추가 창

Detail 텍스처는 풀을 나타내는 텍스처입니다. 에셋 스토어에서 텍스처를 다운로드하거나 직접 텍스처를 생성할 수 있습니다. 텍스처는 빈 영역에 대해 알파가 0으로 설정된 작은 이미지입니다. ‘풀’은 일반 용어입니다. 즉, 텍스처는 꽃이나 인공 오브젝트(예: 철조망 코일)를 나타낼 수도 있습니다.

Min Width, Max Width, Min Height, Max Height, Noise Seed, Noise Spread, Hole Edge Padding (%), Align to Ground (%), Position Jitter (%), Detail Density, Affected by Density Scale, Healthy Color, Dry Color 설정은 메시와 동일한 방식으로 작동하며, 위의 Add Detail Mesh 섹션에서 자세한 내용을 확인할 수 있습니다.

Billboard 옵션을 활성화하면 풀 이미지가 항상 카메라를 향하도록 회전합니다. 풀 덤불은 2차원이고 측면에서 보이지 않기 때문에 이 옵션은 풀이 빽빽하게 우거진 들판을 보여주고 싶을 때 유용합니다. 그러나 풀이 듬성듬성한 경우 개별 덤불을 회전하면 눈에 확 띄게 되어 이상하게 보일 수 있습니다.

디테일 제거

디테일을 제거하려면 제거할 디테일을 선택하고, Edit Details 버튼을 클릭한 다음 Remove를 선택합니다. 디테일을 제거하면 Unity는 해당 디테일을 분산한 터레인 영역을 나타내는 데이터를 지웁니다.


  • 2022–07–20
  • 디테일 밀도 및 분포에 대한 정보 추가됨
윈드 레퍼런스
하이트맵 작업