섀도우 마스크(Shadowmask) 모드는 섀도우 마스크 조명 모드의 하나로 씬의 모든 혼합 조명에서 공유됩니다. 혼합 조명 을 섀도우 마스크 로 설정하려면
이 조명 모드에 대한 자세한 내용을 보려면 혼합 조명 문서를 참조하고, 기타 사용 가능한 모드에 대한 자세한 내용을 보려면 광원 모드 문서를 참조하십시오.
섀도우 마스크는 상응하는 라이트맵과 동일한 UV 레이아웃과 해상도를 공유하는 텍스처입니다. 현재 GPU에서 텍스처가 최대 4채널로 제한되어 있기 때문에, 오클루전 정보를 텍셀당 최대 4개의 광원까지 저장합니다.
Unity는 정적 게임 오브젝트에서 다른 정적 게임 오브젝트로 캐스트되는 그림자를 미리 계산하고 별도의 섀도우 마스크 텍스처에 겹쳐지는 광원을 최대 4개까지 저장합니다. 4개 이상의 광원이 겹쳐지면, 모든 추가적인 광원은 베이크된 조명으로 폴백됩니다. 베이크된 조명으로 폴백할 광원은 베이킹 시스템에 의해 결정되며 겹쳐지는 광원 중 하나가 변경되지 않는 한 베이크 전반에 걸쳐 일관되게 유지됩니다. 라이트 프로브는 최대 4개의 광원까지 동일한 정보를 얻습니다.
광원 겹침은 그림자를 받는 오브젝트별로 각각 계산됩니다. 따라서 광원의 바운딩 볼륨이 공간에서 겹치는 지점이 있지 않는 한 오브젝트는 동일한 섀도우 마스크/프로브 채널에서 10개의 서로 다른 혼합 광원 모두의 영향을 받을 수 있습니다. 일부 광원이 겹치는 경우에는 더 많은 채널이 사용됩니다. 또한 4개의 채널이 모두 이미 할당된 상태에서 광원이 겹친다면 광원 전체가 베이크되도록 폴백합니다.
섀도우 마스크 모드
정적 게임 오브젝트는 Shadow Distance(메뉴: Edit > Project Settings 로 이동한 다음 Quality 카테고리를 선택하고 Shadows 섹션으로 이동)와 상관없이 섀도우 마스크를 통해서 다른 정적 게임 오브젝트로부터 그림자를 받아들입니다. 동적 게임 오브젝트로부터 그림자를 받아들이기도 하지만 __Shadow Distance__의 오브젝트로부터만 받아들입니다.
동적 게임 오브젝트는 섀도우 맵을 통해 그림자 거리 이내의 다른 동적 게임 오브젝트로부터 그림자를 받아들입니다. 또한 라이트 프로브를 통해서 정적인 게임 오브젝트로부터 그림자를 받아들입니다. 그림자 정확도는 씬의 라이트 프로브 밀도와 메시 렌더러에서 선택된 라이트 프로브(Light Probes) 모드에 따라 달라집니다.
Unity는 자동으로 정적 및 동적 게임 오브젝트의 겹치는 그림자를 합성하는데, 이것은 섀도우 마스크(정적 게임 오브젝트 조명 및 그림자 정보를 보유)와 섀도우 맵(동적 게임 오브젝트 조명 및 그림자 정보 보유)이 오클루전 정보만 인코드하기 때문입니다.
섀도우 마스크 모드가 유용하게 쓰이는 예로는 거의 완전히 정지된 장면을 만들 때, 카메라에서 너무 가깝지 않은 곳에서 스페큘러 머티리얼과 소프트 베이크된 그림자 및 동적 그림자 캐스터를 사용하는 경우입니다. 다른 좋은 예로는 베이크된 그림자가 수평선까지 이르는 오픈 월드 장면에서 낮/밤 주기와 같은 동적 조명이 없는 경우입니다.
다음 표는 섀도우 마스크 모드를 사용할 때, 정적 게임 오브젝트 또는 동적 게임 오브젝트가 그림자를 캐스트하고 받는 방법을 보여줍니다.
Dynamic receiver 다른 정적 게임 오브젝트 또는 동적 게임 오브젝트에서 그림자를 받아들이는 동적 게임 오브젝트 |
Static receiver 정적 게임 오브젝트 또는 동적 게임 오브젝트에서 그림자를 받아들이는 정적 게임 오브젝트 |
|||
---|---|---|---|---|
그림자 거리 이내 | 그림자 거리 너머 | 그림자 거리 이내 | 그림자 거리 너머 | |
Dynamic caster 그림자를 캐스트하는 동적 게임 오브젝트 |
섀도우 맵 | - | 섀도우 맵 | - |
Static caster 그림자를 캐스트하는 정적 게임 오브젝트 |
라이트 프로브 | 라이트 프로브 | 섀도우 마스크 | 섀도우 마스크 |
섀도우 마스크 모드의 성능 요구 사항은 이 모드를 낮은 사양 및 중급 사양 PC와 모바일 디바이스용으로 개발하기에 좋은 옵션으로 만듭니다. 다음은 섀도우 마스크 모드의 주요 장점과 단점입니다.
실시간 조명과 동일한 시각 효과를 제공합니다.
동적 게임 오브젝트에서 정적 게임 오브젝트로 그림자를 실시간으로 제공합니다.
셰이더에서 하나의 텍스처 작업으로 정적 게임 오브젝트 간의 모든 조명과 그림자를 처리합니다.
자동으로 정적 게임 오브젝트와 동적 게임 오브젝트의 겹치는 그림자를 합성합니다.
정적 게임 오브젝트를 섀도우 맵으로 렌더링하지 않기 때문에 낮은 수준에서 중간 수준의 성능이 요구됩니다.
간접 조명을 제공합니다.
라이트 프로브를 통해 정적 게임 오브젝트에서 동적 게임 오브젝트로 저해상도 그림자만 제공합니다.
겹치는 광원은 최대 4개로 제한됩니다(자세한 내용은 혼합 조명의 ‘기술 세부 정보’ 항목 참조).
라이트맵 텍스처 세트를 위한 메모리 요구 사항이 증가합니다.
섀도우 마스크 텍스처를 위한 메모리 요구 사항이 증가합니다.
2017–09–18 페이지 수정됨
Unity 5.6에 추가된 광원 모드
Unity 2017.1에 광원 오버랩 계산 팁 추가