Unity 스탠다드 셰이더는 포괄적인 기능을 가진 빌트인 셰이더입니다. 암석, 나무, 유리, 플라스틱, 금속과 같은 “현실” 오브젝트를 렌더링하는 데 사용할 수 있으며, 다양한 셰이더 타입과 조합을 지원합니다. 머티리얼 에디터에서 다양한 텍스처 슬롯과 파라미터를 사용하거나 사용하지 않는 방법으로 기능을 활성화하거나 비활성화할 수 있습니다.
스탠다드 셰이더는 물리 기반 셰이딩(Physically Based Shading, PBS) 이라는 고급 광원 모델을 포함합니다. 물리 기반 셰이딩은 현실과 유사하게 머티리얼과 광원 간의 상호작용을 시뮬레이션합니다. PBS는 최근에서야 실시간 그래픽스에 사용할 수 있게 되었습니다. 머티리얼과 광원이 직관적으로 또 현실적으로 같이 존재해야 하는 상황에서 가장 적합합니다.
물리 기반 셰이더의 목적은 광원 조건이 달라지더라도 지속적으로 현실적인 그래픽을 만들 수 있는 사용자 친화적 방법을 제공하는 것입니다. 작동하지 않을 수 있는 다수의 즉석 모델(ad-hoc model) 을 사용하지 않고도 광원이 현실에서 어떻게 행동하는지를 모델링합니다. 따라서 이 셰이더는 오브젝트가 받는 광원보다 더 많은 광원을 반사할 수 없다는 에너지 보존 법칙, 모든 표면은 지표각에서 반사율이 높아진다는 프레넬(Fresnel) 반사 법칙, 표면이 자신을 가린다는 지오메트리 텀 등을 포함한 물리 법칙을 따릅니다.
스탠다드 셰이더는 “건축 머티리얼”로 불리는 단단한 표면을 염두에 두고 제작되었으며 암석, 유리, 세라믹, 놋쇠, 은, 고무와 같은 대부분의 현실 머티리얼을 구현할 수 있습니다. 피부, 머리카락, 천과 같이 부드러운 표면 역시 준수하게 구현할 수 있습니다.
스탠다드 셰이더의 도입에 따라 Diffuse, Specular, Bumped Specular, Reflective 등과 같은 다양한 셰이더 타입이 모든 머티리얼 타입에 대해 사용할 수 있는 단일 셰이더로 통합되었습니다. 이로 인해 동일한 조명 계산 결과를 씬 전체 영역에 적용하여 셰이더를 사용하는 모든 모델에 현실적이고 일관적이며 사실적인 광원 및 셰이더 배포를 구현할 수 있게 되었습니다.
The Standard Shader lighting math implementation uses the Disney model for diffuse component, GGX model for specular, with Smith Joint GGX visibility term and Schlick Fresnel appromixation.
Unity 물리 기반 셰이더와 관련하여 알아두면 유용한 개념이 많습니다. 아래는 그 일부입니다.