Version: 2022.1
언어: 한국어
라이트맵 UV 소개
라이트맵 UV 시각화

라이트맵 UV 생성

Unity는 모델을 임포트할 때 베이크된 라이트맵에 대한 UV를 계산할 수 있으며 직접 데이터를 제공할 수도 있습니다.

이 페이지는 다음에 관한 정보를 제공합니다.

직접 라이트맵 UV를 제공하는 방법

선택한 컨텐츠 생성 소프트웨어에서 직접 라이트맵 UV를 작성할 수 있습니다. Unity는 이 UV를 소프트웨어의 계산을 위한 입력으로 사용합니다.

이 데이터를 입력하는 위치는 베이크된 라이트맵이나 실시간 라이트맵 또는 둘 모두에 대해 UV를 제공하는지에 따라 다릅니다.

  • 베이크된 라이트맵의 경우 Mesh.uv2에 라이트맵 UV를 배치해야 합니다. 이 채널은 “UV1”이라고도 합니다.
  • 실시간 라이트맵의 경우는 다음과 같습니다.
    • 이미 메시의 Mesh.uv2에 베이크된 라이트맵 UV가 있고 실시간 라이트맵에 대한 입력으로 동일한 UV를 사용하려는 경우 어떤 행동도 할 필요가 없습니다. Unity는 베이크된 라이트맵 UV 공유로 폴백합니다.
    • 이미 Mesh.uv2에 베이크된 라이트맵 UV가 있고 실시간 라이트맵에 대한 입력으로 다른 UV를 제공하려는 경우 실시간 라이트맵 UV를 “UV2”라고도 하는 Mesh.uv3을 배치합니다.
    • 메시의 두 번째 채널에 베이크된 라이트맵 UV가 아직 없는 경우 실시간 라이트맵 UV에 Mesh.uv2를 사용할지 또는 Mesh.uv3을 사용할지 선택합니다.

라이트맵에 적합한 UV 세트는 다음 규칙을 준수해야 합니다.

  • [0,1] x [0,1] UV 공간 안에 포함되어야 합니다.
  • 개별 차트 사이의 마진이 충분히 커야 합니다. 자세한 내용은 UV 오버랩 피드백을 참조하십시오.
  • 겹치는 면이 없어야 합니다.
  • UV의 각도와 원래 지오메트리의 각도 간에 차이가 크지 않아야 합니다.
  • 일부 영역의 라이트맵 해상도를 더 크게 하려는 경우를 제외하고, UV에 있는 삼각형의 상대적인 스케일과 원래 지오메트리에 있는 삼각형의 상대적인 스케일 차이가 크지 않아야 합니다.

라이트맵 UV 자동 생성 방법

모델 임포트 설정을 사용하여 Unity가 모델용 라이트맵 UV를 자동으로 생성하도록 설정할 수 있습니다.

  1. 프로젝트 뷰에서 모델을 선택합니다. 그러면 인스펙터에서 모델 임포트 설정이 열립니다.
  2. 모델 임포트 설정에서 Model 탭으로 이동한 후 Geometry 섹션을 선택합니다.
  3. Generate Lightmap UVs 체크박스를 선택합니다. 그러면 Lightmap UVs settings 섹션이 Generate Lightmap UVs 체크박스 아래에 나타납니다.
  4. 선택 사항: Lightmap UVs settings 섹션에서 설정을 지정합니다. 자세한 내용은 설정을 참조하십시오.
  5. Apply 버튼을 클릭합니다. Unity가 라이트맵 UV를 Mesh.uv2 채널에 생성합니다.

라이트맵 UV 자동 생성 설정

Generate Lightmap UVs 를 활성화하면 모델 임포트 설정Model 탭에 나타나는 설정입니다.

프로퍼티: 기능:
Hard Angle 인접 삼각형 사이의 각도(도 단위)가 이 값을 초과하면 삼각형이 하드 에지로 간주되어 경계 부분이 생성됩니다. 0과 180 사이의 값으로 설정할 수 있습니다. 기본값은 88도로 설정되어 있습니다.

180도로 설정하면 모든 에지가 부드러운 에지로 간주됩니다. 이러한 방식은 유기체 모델을 사실적으로 표현하기에 적합하며, 기계적 모델에는 기본값(88도)이 적합합니다.
Angle Error UV 각도와 소스 지오메트리 각도의 최대 편차(0에서 100까지의 백분율)입니다. 기본값은 8%로 설정되어 있습니다.

UV 공간의 삼각형이 원래 지오메트리의 삼각형과 얼마나 다를 수 있는지 설정합니다. 라이트맵에 적용하는 경우 결함을 방지하려면 일반적으로 매우 낮게 설정해야 합니다.
Area Error UV 영역과 소스 지오메트리 영역 간 차이의 최대값(0에서 100까지의 백분율)을 설정합니다. 기본값은 15%로 설정되어 있습니다.

Unity가 삼각형의 면적율을 보존하는 정도를 설정합니다. 값을 높게 설정하면 차트를 더 적게 생성해도 됩니다. 하지만 값을 높게 설정하면 삼각형의 해상도가 변경될 수 있으므로 높은 값으로 인해 발생하는 왜곡 때문에 라이트맵 품질이 저하되지 않는지 확인하십시오.
Margin Method 팩 마진을 수동으로 지정할지, Unity가 자동으로 계산하도록 지정할지 여부입니다.
Manual 팩 마진을 수동으로 지정합니다.
Calculate 예상되는 라이트맵 해상도 및 오브젝트 스케일에 따라 Unity가 UV 오버랩을 피할 만큼 충분히 큰 팩 마진을 계산합니다.
Pack Margin 메시가 1024x1024 라이트맵 전체를 차지한다는 가정 하에 인접하는 차트 간 마진(픽셀 단위)입니다. 1과 64 사이의 값으로 설정할 수 있습니다. 값이 클수록 마진이 커지지만 차트에 필요한 공간도 커집니다. 기본값은 4픽셀로 설정되어 있습니다.

자세한 내용은 아래의 팩 마진을 참조하십시오.

이 프로퍼티는 Margin MethodManual 로 설정한 경우에만 표시됩니다.
Min Lightmap Resolution 전체 씬에서 이 메시를 사용하는 메시 렌더러의 최소 라이트맵 해상도(단위당 텍셀 수)입니다. 메시 렌더러의 라이트맵 해상도는 메시 렌더러의 Scale in Lightmap 프로퍼티와 메시 렌더러가 나타나는 씬에 대한 조명 설정 에셋Lightmap Resolution 프로퍼티의 조합입니다.

자세한 내용은 최소 라이트맵 해상도와 최소 오브젝트 스케일을 참조하십시오.

Unity는 이 정보를 사용하여 팩 마진을 계산합니다. 이 프로퍼티는 Margin MethodCalculate 로 설정한 경우에만 표시됩니다.
Min Object Scale 전체 씬에서 이 메시를 사용하는 게임 오브젝트의 최소 변환 스케일입니다.

자세한 내용은 최소 라이트맵 해상도와 최소 오브젝트 스케일을 참조하십시오.

Unity는 이 정보를 사용하여 팩 마진을 계산합니다. 이 프로퍼티는 Margin MethodCalculate 로 설정한 경우에만 표시됩니다.

자동 생성된 라이트맵 UV 문제 해결

팩 마진

필터링을 허용하기 위해, 라이트맵은 조명 정보를 차트 경계 부근의 텍셀에 포함하므로 라이트맵을 적용하는 경우 조명이 새어나가지 않도록 항상 차트 사이에 어느 정도의 마진을 적용해야 합니다.

라이트맵 해상도에 따라 라이트맵 텍셀 해상도가 정의됩니다. 라이트매퍼는 검정색 에지가 발생하지 않도록 라이트맵의 차트 텍셀 일부를 팽창시키므로, 메시의 UV 차트가 서로 2텍셀 이상 떨어져 있어야만 조명이 새어나가지 않습니다. 팩 마진(Pack Margin) 설정을 사용하여 지오메트리의 UV 차트 사이에 마진을 충분히 확보해야 합니다.

라이트맵 UV 공간에서는 차트 간 패딩이 2텍셀 이상이어야만 UV 오버래핑 및 의도하지 않은 빛샘 현상을 방지할 수 있습니다. 이 그림에서 검정색 공간은 차트 사이의 공간을 나타냅니다.

최소 라이트맵 해상도와 최소 오브젝트 스케일

UV 차트를 너무 가깝게 배치하면 최종 라이트맵에서 크로스 차트 텍셀 블리딩이 발생할 수 있습니다. 차트를 서로 너무 멀리 배치하면 메모리 낭비가 발생합니다. 오브젝트의 이상적인 팩 마진은 할당된 라이트맵 텍셀 수에 따라 다릅니다.

Unity가 메시 렌더러에 사용하는 텍셀 수는 메시 렌더러의 라이트맵 해상도와 변환 스케일에 따라 다릅니다. 적합한 마진을 계산하기 위해 Unity는 이러한 프로퍼티에 대한 예상 최소값을 알아야 합니다.

메시 렌더러의 라이트맵 해상도는 메시 렌더러가 나타나는 씬에 대한 조명 설정 에셋Lightmap Resolution 프로퍼티와 메시 렌더러Scale in Lightmap 프로퍼티의 조합입니다. 즉 동일한 메시 렌더러가 다른 씬에서 다른 라이트맵 해상도를 사용할 수 있습니다.

다음 단계에 따라 인스펙터를 사용하여 특정 씬에서 메시 렌더러의 라이트맵 해상도를 확인할 수 있습니다.

  1. 씬 뷰 또는 계층 구조에서 MeshRenderer 컴포넌트가 있는 게임 오브젝트를 선택합니다.
  2. 인스펙터에서 MeshRenderer 컴포넌트의 Lightmapping 섹션으로 이동합니다.
  3. Baked Lightmap 폴드아웃을 엽니다. 그러면 Unity가 Lightmap Resolution 레이블을 사용하여 메시 렌더러의 라이트맵 해상도를 베이크된 라이트맵에 표시하고, Lightmap Object Scale 레이블을 사용하여 해당 변환 스케일을 베이크된 라이트맵에 표시합니다.

각도 왜곡

아래 스크린샷은 해상도가 같지만 UV가 서로 다릅니다. 첫 번째 예시에서는 각도 오차(Angle Error) 가 크고 결과물에 의도하지 않은 결함이 포함되어 있습니다. 두 번째 예시에서는 기본적인 각도 오차(Angle Error)(8%)가 적용되어 있습니다. 메시에 삼각형이 더 많은 경우 각도 오차로 인해 형태가 크게 왜곡될 수 있습니다.

영역 왜곡

아래 그림에서는 파라미터가 같은 스폿 광원 2개가 실린더 면에 조명을 비춥니다. 오른쪽 실린더 면의 영역 오차(Area Error) 값이 더 커지기 때문에 삼각형이 왜곡되고 해상도가 더 낮아져 조명에 결함이 생깁니다.

라이트맵 UV 소개
라이트맵 UV 시각화
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961