Unity Basic (4) - Unity Standard Shader (1)

해당 포스트는 개발관련 부분을 최대한 제외하여, 쉽게 Unity에 접근할 수 있도록 제작 되었습니다.

유니티에서 물체를 그릴 때 가장 기본적으로 적용되는 Unity Standard Shader의 Material Parameter에 대해 알아보겠습니다. 샘플을 사용하기 위해서 Unity hub 학습 란의 John Lemon's Haunted House 프로젝트를 예제로 사용했습니다.

Rendering Mode

Opaque

기본 옵션으로, 투명하지 않은 솔리드 오브젝트에 적합합니다.

Cutout

반투명영역이 존재하지 않고 어느한쪽이 100% 불투명하거나 보이지 않습니다. 구멍이 난 잎이나 천을 묘사할때 유리합니다.

Transparent

투명한 플러스틱이나 유리등의 렌더링에 적합합니다.  이 모드의 Mateiral자체는 텍스쳐의 알파값과 틴트 컬러의 알파에 의한 투명한 값입니다.

Fade

투명도 값이 오브젝트를 완전히 페이드 아웃 할 수 있게 해줍니다. 오브젝트의 페이드 인 또는 페이드 아웃 애니메이션을 적용하는 경우에 유용합니다. 반사와 하이라이트에도 적용되므로, 플라스틱이나 유리같은 현실적인 투명한 물체의 렌더링에는 적합하지 않습니다. 홀로그램과 같은 렌더링에 적합합니다.

Albedo Color and Transparency

Albedo

알베도는 표면의 기본 색상을 제어합니다. 알베도 파라미터에 texture map을 적용하여 다양한 색을 표현할 수 있습니다.

Transparency

알베도 색상의 알파값은 투명도를 제어합니다. 모드가 Fade / Transparent 의 경우 효과가 있습니다.

Specular Mode : Specular Parameter

Stand (Specular Setup) Shader 에서 Smoothness, 왼쪽부터 0, 0.5, 1

Standard (Specular Setup) Shader에서 조정 가능한 파라미터로, 씬에 있는 광원의 직접반사를 나타냅니다. 오브젝트 표면에 밝은 하이라이트 및 빛나는 모습으로 나타납니다. Specular 파라미터에 텍스쳐가 할당되었을 경우에는 슬라이더가 사라지는 대신 텍스쳐 자체의 RGB 값에 의해 조절 됩니다. 이 때 Smoothness 값은 Alpha채널로 조절 됩니다. 검은 스페큘러 컬러(0,0,0)를 사용하면 스페큘러 이펙트가 무효화됩니다.

Metallic Mode : Metallic Parameter

Standard Shader 에서 Smoothness 0.7 고정, Metallic 왼쪽부터 0, 0.5, 1

Metallic은 표면의 반사도 및 광원 반응이 Metallic 레벨과 Smoothness 레벨에 따라 바뀝니다. Metallic Mode를 사용할 경우에도 스페큘러 반사가 생성되지만 명시적으로 정의되지 않고 메탈릭 및 평활도 레벨에 적용한 설정에 따라 자연스럽게 발생합니다.

Metallic 파라미터는 얼마나 "금속 같은지"가 결정되는 파라미터 입니다. Metallic 파라미터에 텍스처를 할당하면 Metallic 및 Smoothness 슬라이더가 모두 표시되지 않습니다. 대신, Material의 Metallic 레벨은 텍스처의 Red 채널 값으로 제어되고 Material의 Smoothness 레벨은 텍스처의 알파 채널에 따라 제어됩니다. 그린 및 블루 채널은 무시됩니다. 정의된 값에 따라 부분적으로 매끄러운지, 금속성인지 비금속성인지 정의할 수 있게되며 하나의 텍스쳐에 다양한 재질 효과를 나타낼 수 있습니다.

Smoothness

Smoothness값에 따른 빛 반사차이 0 > 1, 0에 가까울 수록 난반사로 인한 Diffuse Color가 만들어집니다.

Smoothness 역시 텍스쳐 맵을 사용할 수 있으며, 이를 통해 표면 전체 스페큘러 광원 반사의 강도와 컬러를 자세하게 조절 할 수 있습니다.

Metallic은 0.3, Smoothness는 1로 고정되어 있습니다.
Specular
Hightlight
Reflections
왼쪽 X O
중앙 O O
오른쪽 O X

Sepcular Highlight

체크해제 할 경우 하이라이트가 비활성화됩니다. 이는 모바일용 추가 성능 최적화로 스탠다드 셰이더에서 하이라이트 계산을 없앱니다. 형상에 미치는 영향은 스페큘러/메탈릭 값과 평활도에 따라서 결정됩니다.

Reflection

체크해제 할 경우 주변 환경 반사가 비활성화됩니다. 이는 모바일용 추가 성능 최적화로 스탠다드 셰이더에서 하이라이트 계산을 없앱니다. 주변 환경 맵을 샘플링하는 대신 근사치를 사용합니다. 형상에 미치는 영향은 평활도에 따라서 결정됩니다.

Material Chart

Unity에서 제작된 이미지로, Metallic과 Smoothness의 값에 대한 차트입니다.

References

Unity - Manual: Material parameters
Unity - Manual: Material charts