조명 사용 전략
셰이딩

모델링

모델링하기 전에 계획을 세우는 것이 매우 중요합니다. 사전 제작 단계에서나 공간을 대강 구성해 보려는 경우에는 빠르게 만든 모델을 사용해도 되지만, 제대로 된 씬을 만들려면 에셋을 완성하기 시작하는 순간부터 다음 사항을 고려하십시오.

모든 폴리곤의 효과적인 사용

최신 하드웨어는 다양한 요구 사항을 충족하기에 충분한 성능을 갖추고 있지만, 씬에 배치된 지오메트리가 단순하면 어떤 방식으로든 도움이 됩니다. 불필요한 테셀레이션과 복잡한 지오메트리는 실시간 설정에서 관리하기 어렵고 성능에 영향을 미치며, 메모리를 불필요하게 사용할 수 있습니다. 아래 예에서는 라이트맵과 오버드로우처럼 플레이어에게 보이지 않는 지오메트리가 어떻게 리소스를 낭비하고 광원 누출을 초래하는지 확인할 수 있습니다.

불필요하게 표시된 표면이 하이라이트된 씬
불필요하게 표시된 표면이 하이라이트된 씬

조명을 추가하는 게임 오브젝트

베이크된 조명 또는 실시간 GI를 라이트 프로브와 함께 사용하는 경우 게임 오브젝트가 씬에 조명을 추가하는지 아니면 씬의 간접/베이크된 조명만 받는지 결정해야 합니다.

조명을 추가하는 게임 오브젝트

조명을 추가하는 게임 오브젝트를 설정하려면 Inspector 창에서 Lightmap Static 이 선택되어 있는지 확인합니다. 그러면 라이트맵 텍스처의 공간이 효율적으로 사용되기 때문에 더 나은 간접 반사/베이크된 조명을 생성하는 더 간단하고 매끄러운 표면 영역을 얻을 수 있습니다.

  • 자동 라이트맵 UV를 사용하면 비효율적인 차트가 작성되거나 원치 않는 경계 부분이 생성될 경우 광원을 베이크할 때 지오메트리에 사용할 UV2를 작성해야 할 수 있습니다.
  • 효율적인 실시간 GI 결과를 얻으려면 지오메트리에 사용할 UV3를 작성해야 할 수 있습니다.

때로는 실시간 GI에서 메시의 UV를 단순화하여 지오메트리에 훨씬 적은 리소스가 사용되도록 하고 결함이 더 적은 최선의 결과를 얻을 수 있습니다.

씬에서 조명을 받기만 하는 게임 오브젝트

게임 오브젝트가 실시간 광원과 라이트 프로브의 조명을 받기만 하는 경우 지오메트리에는 라이트맵 UV 제한이 없습니다. 지오메트리가 큰 경우 라이트 프로브 하나로 조명을 적절히 비출 수 없기 때문에 지오메트리에 특히 유의해야 하고, 여러 프로브 광원 정의를 조합하기 위해 Light Probe Proxy Volume 컴포넌트가 필요할 수 있습니다.

이동하지 않는 게임 오브젝트에 항상 라이트맵이나 실시간 GI를 사용해야 하는 것은 아닙니다. 게임 오브젝트가 작거나 게임 오브젝트에 빛을 많이 반사하는 표면이 없는 경우 라이트맵에 포함시키지 않아도 됩니다. 아래 그림의 벤치와 레일이 좋은 예입니다.

UV 차트가 있는 게임 오브젝트만 간접 조명에 포함되어야 함
UV 차트가 있는 게임 오브젝트만 간접 조명에 포함되어야 함

UV 레이아웃 모델링 전략

UV 레이아웃은 특히 지오메트리에 타일링할 수 없는 텍스처가 있는 경우 노멀 맵 베이킹(일반적으로 UV1), 라이트맵 베이킹(UV2) 및 실시간 라이트맵(UV3)에 같은 양의 메모리를 사용하면서 화질을 개선하는 데 도움이 될 수 있습니다.

UV 레이아웃 전략을 결정할 때 다음과 같은 팁을 고려하십시오.

  • UV1 차트의 경우 UV 셸을 필요한 경우에만 분할하고 UV 차트를 최대한 효율적으로 배열하여 노멀 맵 베이킹에 텍스처 공간이 낭비되지 않도록 하십시오. 예를 들어 사각형이 1024개인 텍스처에는 디테일 추가 여부와 관계없이 같은 양의 메모리가 사용된다는 점을 기억하십시오.
각 부분이 전체 텍스처 공간을 적절히 차지하도록 하여 공간 낭비를 방지하는 예
각 부분이 전체 텍스처 공간을 적절히 차지하도록 하여 공간 낭비를 방지하는 예
  • 라이트맵(UV2)의 경우, 경계가 맞붙지만 겹쳐지지 않은, 즉 끊어지지 않은 라이트맵 차트를 제작하여 라이트 베이크의 블리딩 또는 경계 부분이 생기는 현상을 방지하십시오. UV 차트/셸 간에 스케일 일관성을 유지하는 것은 라이트맵 텍셀을 모델 전체에 고르게 분산하기 위해 중요합니다.
단순 지오메트리의 과장된 라이트맵 분할. 라이트맵 경계면의 문제를 나타냅니다
단순 지오메트리의 과장된 라이트맵 분할. 라이트맵 경계면의 문제를 나타냅니다
  • 실시간 GI(UV3)의 경우, 모델의 큰 표면을 나타내는 넓은 영역의 UV 공간에 우선 순위를 지정하여 메모리 사용량을 줄이고 경계 부분이 생기는 것을 방지하십시오. 많은 경우에 모델의 자동 UV 설정을 통해 차트를 매우 쉽게 최적화할 수 있습니다. 실시간 GI의 차트 최적화에 대한 자세한 내용은 Unity 자동 언래핑 최적화 Unity 튜토리얼을 참조하십시오.

  • 라이트맵이 필요하지 않은 게임 오브젝트의 경우 추가 UV를 작성하여 메모리를 낭비하지 마십시오. 단, 커스텀 셰이더에서 필요로 하는 경우는 예외입니다.

지오메트리의 디테일

현실을 모방한 게임 오브젝트는 디테일 수준이 매우 높습니다. 실시간 지오메트리를 작성하려면 지오메트리에 추가할 디테일과 노멀 맵과 텍스처에 추가할 디테일을 식별해야 합니다. 실시간 씬에 사용할 에셋을 개발하는 경우 일반적으로 하이 폴리곤에서 로우 폴리곤 노멀 맵으로 베이크합니다.

하이 폴리 메시에서 로우 폴리 메시로 베이크된 탄젠트 공간 노멀 맵의 예
하이 폴리 메시에서 로우 폴리 메시로 베이크된 탄젠트 공간 노멀 맵의 예

기억해야 할 중요한 세부 사항 중 하나는 게임 오브젝트의 모서리 부분이 하이라이트를 받는 방법입니다. 모서리가 매우 날카롭거나 모서리에 경사가 없거나 상세하게 정의된 모서리가 없는 오브젝트는 실제로 거의 볼 수 없습니다. 사실적인 모서리의 형태를 모방하면 씬의 현실감이 더욱 살아납니다.

노멀 맵은 표면이 다른 지오메트리와 만나는 표면에 매끄럽게 흐르는 하이라이트를 적용합니다
노멀 맵은 표면이 다른 지오메트리와 만나는 표면에 매끄럽게 흐르는 하이라이트를 적용합니다

스무딩 그룹(폴리곤의 하드/소프트 에지)

적합한 스무딩 그룹을 사용하여 모델과 노멀 맵의 효율을 높일 수 있습니다. 아래에는 스무딩 그룹 사용에 관한 몇 가지 팁이 나와 있습니다.

  • 하이 폴리곤에서 로우 폴리곤으로 베이크하는 노멀 맵을 다루는 경우 단순 설정을 다면 폴리곤 대신 스무딩 그룹으로 사용하십시오. 이렇게 하는 이유는 탄젠트 노멀 맵이 로우 폴리 지오메트리에서 표면 노멀의 뚜렷한 경계면을 구부려야 하기 때문입니다.
로우 폴리 노멀을 부드럽게 구부려서 하이 폴리곤 메시를 모방하는 노멀 맵
로우 폴리 노멀을 부드럽게 구부려서 하이 폴리곤 메시를 모방하는 노멀 맵
  • 적절한 노멀 맵이 있는 부드러운 폴리곤을 사용하면 버텍스 수가 감소하여 지오메트리를 더 효율적으로 렌더링할 수 있습니다. 다음은 설정을 비교하는 간단한 예입니다.

    • 36개의 버텍스와 같은 분할된 스무딩 그룹이 있는 단일 평면.

    • 16개의 버텍스와 같은 1개 스무딩 그룹의 간단한 18개 삼각형 평면.

단일 평면과 삼각형 평면의 버텍스 수 비교

  • 매끄러운 폴리곤을 사용하면 라이트맵 베이킹과 실시간 GI의 차트 분할이 감소하여 시각적으로 더 자연스러운 결과를 얻을 수 있습니다.

  • 2018–03–21 일부 편집 리뷰를 거쳐 페이지 게시됨
  • 실제 같은 시각 요소 만들기 베스트 프랙티스 가이드가 Unity 2017.3에 추가됨
조명 사용 전략
셰이딩