Unity에서 렌더링을 시도할 그래픽 품질 레벨을 설정할 수 있습니다. 품질은 일반적으로 프레임 속도와 반비례하므로 모바일 기기나 구형 하드웨어에서는 최고 품질을 목표로 하지 않은 것이 좋습니다. 게임플레이가 크게 저하될 것이기 때문입니다. Quality Settings 인스펙터(메뉴: Edit > Project Settings > Quality)는 선택된 기기에 사용할 품질 레벨을 에디터에서 선택하는 데 사용합니다. 이 인스펙터는 크게 두 영역으로 나뉘고, 상단에는 다음 매트릭스가 있습니다.
Unity에서는 품질 옵션의 특정 조합을 쉽게 레퍼런스할 수 있는 이름을 지정할 수 있습니다. 매트릭스 행에서 각 품질 레벨을 적용할 플랫폼을 여러 플랫폼 중에서 선택할 수 있습니다. 매트릭스 하단의 디폴트 행은 그 자체로는 품질 레벨이 아니며, 대신 각 플랫폼에 사용되는 디폴트 품질 레벨을 설정하는 데 사용됩니다. 여기서 열의 초록색 체크박스는 현재 해당 플랫폼에 대해 선택된 레벨을 표시합니다. Unity는 6개의 품질 레벨이 미리 활성화된 상태로 제공되지만, 매트릭스 아래의 버튼을 사용해 원하는 레벨을 추가할 수 있습니다. 맨 오른쪽 열에 있는 휴지통 아이콘을 사용하여 불필요한 품질 레벨을 삭제할 수 있습니다.
품질 레벨의 이름을 클릭해 설정 매트릭스 아래 패널에서 편집하기 위해 선택할 수 있습니다.
품질 레벨을 설정할 때 선택할 수 있는 품질 옵션은 다음과 같습니다.
프로퍼티: | 기능: |
---|---|
Name | 품질 레벨을 참조하는 데 사용할 이름입니다. |
렌더링:
프로퍼티: | 기능: |
---|---|
Pixel Light Count | 포워드 렌더링 사용 시 픽셀 광원의 최대 수입니다. |
Texture Quality | 텍스처를 최대 해상도로 표시할지 아니면 이보다 낮은 해상도로(해상도가 낮으면 처리할 오버헤드가 적음) 표시할지 선택할 수 있습니다. 해상도가 낮을수록 처리하는 데 사용되는 리소스가 적습니다. 옵션은 Full Res, Half Res, Quarter Res, Eighth Res입니다. |
Anisotropic Textures | 이방성 텍스처 사용 여부와 방법을 설정할 수 있습니다. 옵션은 Disabled, Per Texture, Forced On (즉 항상 활성화됨)입니다. |
AntiAliasing | 사용할 안티앨리어싱 레벨을 설정합니다. 옵션은 2x, 4x 및 8x 멀티 샘플링입니다. |
Soft Particles | 소프트 블렌딩을 파티클에 사용할 것인지 설정합니다. |
Realtime Reflection Probes | 게임플레이 중에 반사 프로브 업데이트 여부를 설정합니다. |
섀도우:
프로퍼티: | 기능: |
---|---|
Shadows | 사용할 그림자 타입을 결정합니다. 사용 가능한 옵션은 Hard and Soft Shadows, Hard Shadows Only, Disable Shadows 입니다. |
Shadow resolution | 그림자를 Low, Medium, High, Very High 등 몇 가지 해상도로 렌더링할 수 있습니다. 해상도가 높을수록 처리하는 데 리소스가 더 많이 사용됩니다. |
Shadow Projection | 다음 두 가지 방법으로 방향광에서 그림자를 투영할 수 있습니다. Close Fit을 사용하면 고해상도 그림자가 렌더링되지만, 카메라가 움직이면 약간 흔들릴 수도 있습니다. Stable Fit을 사용하면 해상도가 더 낮은 그림자가 렌더링되지만 카메라가 움직여도 흔들리지 않습니다. |
Shadow Cascades | 섀도우 캐스케이드 수를 0개, 2개 또는 4개로 설정할 수 있습니다. 캐스케이드 수가 많을수록 품질이 좋지만 처리하는 데 리소스가 더 많이 사용됩니다. 자세한 내용은 방향 광원 섀도우를 참조하십시오. |
Shadow Distance | 그림자가 보이는 카메라와의 최대 거리입니다. 이 거리보다 멀리 있는 그림자는 렌더링되지 않습니다. |
Shadow Near Plane Offset | 그림자 팬케이크 현상으로 인해 큰 삼각형이 왜곡되는 것을 해결하기 위해 평면 부근의 그림자를 오프셋합니다. |
기타:
프로퍼티: | 기능: |
---|---|
Blend Weights | 애니메이션 중에 주어진 버텍스에 영향을 줄 수 있는 뼈대의 수 입니다. 사용 가능한 옵션은 뼈대 1개, 2개 또는 4개입니다. |
VSync Count | 렌더링을 디스플레이 기기의 재생률과 동기화하여 “테어링” 결함을 방지할 수 있습니다(아래 참조). 모든 수직 블랭크(VBlank)와 동기화하거나 하나 거른 수직 블랭크와 동기화하거나 전혀 동기화하지 않는 옵션 중에서 선택할 수 있습니다. |
LOD Bias | LOD 레벨은 오브젝트가 화면에 표시되는 크기에 따라 선택됩니다. 크기가 두 LOD 레벨 사이에 있는 경우, 사용 가능한 두 모델 중에서 더 상세하거나 더 상세하지 않은 모델에 더 치우치도록 설정할 수 있습니다. 값은 0에서 +무한까지의 소수로 설정할 수 있습니다. 0과 1 사이로 설정하면 더 상세하지 않은 쪽으로 치우칩니다. 1보다 큰 값으로 설정하면 더 상세한 쪽으로 치우칩니다. 예를 들어 LOD 바이어스를 2로 설정하고 50% 거리에서 바뀌도록 설정하면 실제로는 LOD가 25%에서 바뀝니다. |
Maximum LOD Level | 게임에서 사용할 최고 LOD입니다. 자세한 내용은 아래 참고 사항을 참조하십시오. |
Particle Raycast Budget | 파티클 시스템 충돌 근사에 사용하는 (품질이 Medium 또는 Low 인) 레이캐스트의 최대 수입니다. 파티클 시스템(Particle System) 충돌 모듈을 참조하십시오. |
Async Upload Time Slice | 버퍼 텍스처를 GPU에 업로드하는 데 소요되는 CPU 시간입니다. 단위는 프레임당 밀리초입니다. 비동기 텍스처 업로드를 참조하십시오. |
Async Upload Buffer Size | 비동기 업로드 버퍼의 크기입니다. 단위는 MB입니다. 비동기 텍스처 업로드를 참조하십시오. |
LOD가 MaximumLOD 레벨보다 낮은 모델은 사용되지 않고 빌드에서 제외됩니다. 그러면 스토리지 및 메모리 용량이 절약됩니다. Unity는 타겟 플랫폼에 대한 모든 품질 설정과 연결된 모든 MaximumLOD 값 중에서 가장 작은 LOD 값을 사용합니다. LOD 레벨이 포함된 경우 해당 LODGroup의 모델이 빌드에 포함되고, 사용되는 품질 설정에 관계없는 해당 LODGroup은 항상 런타임 시점에 로드됩니다. 예를 들어 LOD 레벨 0이 사용된 품질 설정이 있는 경우 모든 LOD 레벨이 빌드에 포함되고 모든 레퍼런스된 모델은 런타임 시점에 로드됩니다.
디스플레이 디바이스의 영상은 지속적으로 업데이트되지 않고 Unity 프레임 업데이트 방식과 유사하게 정기적인 간격으로 업데이트됩니다. 하지만 Unity 업데이트는 디스플레이 업데이트와 동기화되지 않을 수 있으므로 디스플레이가 아직 이전 프레임을 렌더링하는 동안 Unity가 새 프레임을 제공할 수 있습니다. 그러면 화면에서 프레임이 변경되는 포지션에 “테어링”이라는 시각적 결함이 발생합니다.
디스플레이 디바이스가 업데이트되지 않는 “수직 블랭크”라는 기간에만 프레임을 전환하도록 Unity를 설정할 수 있습니다. 품질 설정의 VSync 옵션을 사용하여 프레임 전환을 디바이스의 수직 블랭크와 동기화하거나 하나 거른 수직 블랭크와 동기화하도록 설정할 수 있습니다. 후자는 게임에서 프레임 렌더링을 완료하기 위해 두 번 이상의 장치 업데이트가 필요한 경우 유용할 수 있습니다.
안티앨리어싱은 폴리곤 에지의 형상을 개선하여 화면에 “들쑥날쑥”하지 않고 매끄럽게 표시되도록 합니다. 하지만 그래픽 카드 리소스와 메모리를 많이 사용합니다. 단, CPU 성능에는 영향이 없습니다. 안티앨리어싱 레벨에 따라 폴리곤의 에지가 매끄럽게 표시되는 정도(와 소모되는 비디오 메모리의 양)가 결정됩니다.
하지만 하드웨어에 내장된 안티앨리어싱은 디퍼드 셰이딩이나 HDR 렌더링과 함께 사용할 수 없습니다. 이 경우 안티앨리어싱 이미지 이펙트를 사용해야 합니다.
소프트 파티클은 다른 씬 지오메트리와 교차하는 부분 부근에서 페이드 아웃됩니다. 따라서 보기에는 훨씬 더 좋지만 연산 리소스가 더 많이 사용되고(더 복잡한 픽셀 셰이더) 뎁스 텍스처를 지원하는 플랫폼에서만 사용 가능합니다. 또한 디퍼드 셰이딩 또는 레거시 디퍼드 라이팅 렌더링 경로를 사용하거나 스크립트를 통해 카메라가 뎁스 텍스처를 렌더링하도록 해야 합니다.