Version: 2021.3
언어: 한국어
윈드 존
하이트맵 작업

풀 및 기타 디테일

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

2021.2 이전 버전에서는 풀 및 기타 디테일이 빌트인 렌더 파이프라인유니버설 렌더 파이프라인(URP)에서만 작동했습니다. 2021.2 버전에서 Unity는 고해상도 렌더 파이프라인(HDRP)을 포함하여 모든 렌더 파이프라인과 작동하는 인스턴스 디테일을 도입했습니다.

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

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

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

Instanced mesh를 추가하려면 Add Detail Mesh를 선택하고 Use GPU Instancing 옵션을 활성화합니다.
Vertex Lit mesh 렌더링에 GPU 인스턴싱을 사용하지 않습니다. 대신 모든 디테일 인스턴스를 하나의 메시로 결합하므로 단순한 셰이딩과 얻을 수 있는 인스턴스 수에 제한이 생깁니다.

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

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

이 옵션을 적용하려면 Add Grass Texture를 선택합니다.

페인트 디테일

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

터레인 인스펙터의 Paint Details
터레인 인스펙터의 Paint Details

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

디테일 메시 추가

디테일 메시 추가 창
디테일 메시 추가 창

Detail Prefab 필드를 사용하여 프로젝트에서 프리팹을 선택합니다. 실제같은 모양을 만들기 위해 각 메시는 크기와 색상을 결정하는 랜덤 인자의 영향을 받습니다. Unity는 Perlin noise 알고리즘을 사용하여 이러한 랜덤 인자를 생성합니다.

Min Width, Max Width, Min Height, Max Height 값은 메시가 랜덤으로 생성되는 X축이나 Y축을 따라 위쪽과 아래쪽 스케일링을 지정합니다.

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

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

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

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

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

GPU 인스턴싱 사용

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

Unity는 여전히 너비와 높이 노이즈를 각 인스턴스에 적용하지만 Healthy Color/Dry Color 노이즈를 비활성화합니다. 셰이더에서 여러 가지 랜덤하게 채우는 고유한 컬러 배리에이션 기술을 사용할 수 있습니다.

내부적으로 Unity GPU 인스턴싱 제한 사항 중 일부가 렌더링에 영향을 미칩니다. 예를 들면 다음과 같습니다.

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

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

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

풀 텍스처 추가

풀 텍스처 추가 창
풀 텍스처 추가 창

Grass Texture 추가 창

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

Min Width, Max Width, Min Height, Max Height, Noise Seed, Noise Spread, Hole Edge Padding (%), Healthy Color, Dry Color 설정은 메시와 동일하게 작동하며 위의 디테일 메시 추가 섹션에 설명되어 있습니다.

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

디테일 제거

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


  • 2021–11–24 페이지 수정됨
  • 인스턴싱 디테일에 관한 정보 추가됨
윈드 존
하이트맵 작업