Version: 2021.3
언어: 한국어
밉맵
밉맵 스트리밍 시스템

밉맵 소개

밉 또는 밉 레벨은 특정 해상도의 텍스처 버전입니다. 밉은 밉맵이라는 집합에 존재합니다. 밉맵에는 점진적으로 더 작고 더 낮은 해상도 버전의 단일 텍스처가 포함됩니다.

예를 들어 밉맵에는 원본 텍스처(Mip 0)에서 Mip 1, Mip 2, Mip 3까지 4가지 버전의 텍스처가 포함될 수 있습니다.

밉 레벨
밉 레벨

밉맵은 일반적으로 3D 씬에서 오브젝트를 렌더링하는 데 사용되며 여기서 텍스처된 오브젝트는 카메라로부터 거리에 따라 달라질 수 있습니다. 더 높은 밉 레벨은 카메라에 가까운 오브젝트에 사용되며 더 낮은 밉 레벨은 더 먼 오브젝트에 사용됩니다.

밉맵은 GPU가 전체 해상도보다 낮은 해상도로 텍스처를 렌더링하는 상황에서 렌더링 작업 속도를 높이고 렌더링이 아티팩트를 줄일 수 있습니다. 효과적으로 캐시된 밉은 원본 텍스처의 다운샘플링된 버전입니다. GPU는 원본 전체 해상도 텍스처에서 더 많은 샘플링을 작업하는 대신 이미 다운샘플링된 버전에서 더 적은 수의 작업을 수행할 수 있습니다.

밉맵이 유용하지 않은 경우도 있습니다. 밉맵은 디스크와 메모리 모두에서 텍스처 크기를 33% 늘립니다. 또한 크기가 조정되지 않은 UI 텍스처와 같이 텍스처가 전체 해상도로만 렌더링되는 경우에는 장점이 없습니다. 텍스처에 대한 밉맵을 수동으로 생성하거나 Unity가 밉맵을 생성하도록 지시할 수 있습니다. 밉맵을 자동으로 생성하려면 예시 밉맵 이미지와 같이 원본 텍스처의 해상도가 2의 거듭제곱 값인지 확인해야 합니다.

텍스처 임포트 설정 인스펙터에서 텍스처 에셋에 대한 밉맵을 활성화하거나 비활성화할 수 있습니다.

GPU의 밉 레벨 샘플링 방법

GPU는 텍스처를 샘플링할 때 현재 픽셀의 텍스처 좌표(UV)와 GPU가 계산하는 두 가지 내부 값(DDX와 DDY)에 따라 사용할 밉 레벨을 결정합니다. DDX와 DDY는 현재 픽셀의 거리와 각도를 포함하여 옆 픽셀과 위 필셀의 UV에 대한 정보를 제공합니다.

GPU는 이러한 값을 사용하여 카메라에 표시되는 텍스처의 디테일 정도를 결정합니다. 현재 필셀과 인접한 픽셀 사이의 거리가 더 멀고 더 극단적인 각도를 가질수록 GPU가 더 낮은 해상도의 밉을 선택해야 함을 의미하고 더 짧은 거리와 덜 극단적인 각도를 가질수록 GPU가 더 높은 해상도의 밉을 선택해야 함을 의미합니다.

GPU는 삼선형 필터링을 사용할 때 두 밉의 텍스처 정보를 함께 블렌딩할 수 있습니다. 샘플링하는 동안 밉을 블렌딩하면 한 밉에서 다른 밉으로의 전환을 덜 눈에 띄게 만들 수 있습니다. 밉을 블랜딩하기 위해 GPU는 한 밉에서 특정 비율의 텍스처 정보를 가져오고 나머지는 다른 밉에서 가져옵니다.

밉 바이어스

밉 바이어스라는 설정은 샘플러 설정에 따라 샘플링 중에 다음 두 가지 작업을 수행할 수 있습니다.

  • 밉 바이어스는 샘플에 비해 더 낮거나 더 높은 밉을 선택하는 GPU의 임계값을 변경할 수 있습니다. GPU는 샘플러에서 포인트 필터링을 사용할 때 특정 밉을 선택합니다. 예를 들어 GPU는 UV 세트의 텍스처가 Mip 3의 샘플을 사용해야 한다고 결정할 수 있습니다. Mip 바이어스가 –2인 경우 GPU는 해상도가 더 높은 Mip1을 대신 샘플에 사용합니다.
  • 밉 바이어스는 GPU가 다양한 밉 샘플을 블렌딩할 때 또 다른 밉보다 정확한 비율만큼 한 가지 밉을 선택하도록 지시할 수 있습니다. GPU는 샘플러에서 선형 또는 삼선형 필터링을 사용할 때 밉을 블렌딩합니다. 예를 들어 GPU의 계산 결과 0.5값을 반환할 수 있습니다. 0.5값은 GPU가 한 밉에서 필요한 텍스처 정보의 50%를 가져오고 밉맵의 다음 밉에서 나머지 50%를 가져오도록 지시합니다. 밉 바이어스를 0.2 추가하면 0.5값이 0.7로 변경되고 GPU는 첫 번째 밉에서 텍스처 정보의 70%를 가져오고 두 번째 밉에서 30%만 가져옵니다.

GPU에는 기본적으로 밉 선택에 적용되는 전역 밉 바이어스가 있습니다. 텍스처에는 Unity가 전역 밉 바이어스를 추가하거나 뺄 수 있는 고유한 밉 바이어스가 있습니다. 셰이더에서 개별 텍스처 샘플링 작업에 대해 고유한 밉 바이어스를 지정할 수도 있습니다.

개별 텍스처에 대한 밉 바이어스를 설정하려면 Texture.mipMapBias를 참조하십시오. 직접 코딩한 셰이더에서 텍스처 샘플링 작업에 대한 밉 바이어스를 설정하려면 tex2dbias와 같은 HLSL 함수를 사용합니다. 셰이더 그래프에서 텍스처 샘플링 작업에 대한 밉 바이어스를 설정하려면 샘플 텍스처 2D 배열 노드 또는 샘플 텍스처 2D 노드를 참조하십시오.

Unity의 밉맵 로드 방법

밉맵 스트리밍을 사용하여 Unity가 런타임 시 밉맵을 로드하는 방식을 제어할 수 있습니다.

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