알베도(Albedo)와 이미션(Emission) 그리고 디퓨즈(Diffuse)
셰이더 공부를 하다보니 알베도(Albedo) 와 이미션(Emission), 디퓨즈(Diffuse) 등의 용어가 등장하는 경우가 많았는데, 세 가지의 차이점 구분을 위해 메모 해둡니다. 특히 디퓨즈와 알베도는 많이 헷갈렸던 개념이라 최대한 자료들 읽어보고 요약 정리 해봤습니다.
디퓨즈(Diffuse)
먼저 Diffuse. 셋중에서는 어쩌면 가장 많이 들어본 용어일 겁니다. 그도 그럴 것이, 넓은 범위의 개념을 담고있는 용어이고, 전통적인 게임 텍스쳐를 보통 디퓨즈 텍스처(Diffuse Texture)로 부르며 활용했던 것 같습니다. Unity 5버전 이전에 가장 무난하게 사용하던 셰이더 이름과도 동일하고요.
이 Diffuse 는 사전뜻으로 "확산시키다"라는 뜻을 갖고있는 만큼, 빛 표현에서의 "확산광"과 그 의미가 같다고 이해하고 있습니다. 물체가 빛을 받아 확산시켜 눈에 들어오는 색상 정도로 설명할 수 있겠는데, 물체의 물리적인 상태보다는 빛의 입장에 가까운 용어라는 생각입니다.
그래서 Diffuse 텍스쳐를 보통 "손맵"이라는 업계 용어(?)로 부르기도 하듯, 텍스쳐가 물체의 고유 색상은 물론 어느정도의 음영과 차폐, 하이라이트 표현 등을 담고있는 경우도 있습니다.
알베도(Albedo)
알베도(Albedo)는 개인적으로 PBR(Physically Based Rendering) 셰이더를 접하면서 디퓨즈(Diffuse) 다음으로 많이 접하게 된 용어. 알베도(Albedo)는 PBR 개념에 맞게 물체의 측면에서 물리적인 고유 색상을 의미합니다. 디퓨즈가 빛 측면에서 나타내는 텍스처 혹은 색상이라면 알베도는 반대로 물체 측면에서의 텍스처 혹은 색상이라고 그 차이점을 이해하고 있습니다.
알베도(Albedo) 는 물체 고유의 색상이라는 성격상, 좀 더 순수한 느낌의 텍스처로 보여질 수 있습니다. 아래 샘플 이미지에서 디퓨즈와 알베도의 차이점을 대략적으로 구분할 수 있는데, 상대적으로 디퓨즈가 좀 더 현실적인 느낌. 알베도는 환경 차폐(Ambient Occlusion)나 범프 효과, 하이라이트 등이 거의 느껴지지 않는다는 걸 알 수 있습니다.
위 스샷의 출처 : https://www.youtube.com/watch?v=vmC-C-6-DYo
알베도는 물체의 고유 색상만을 담고있기 때문에 그대로 게임 텍스처로 사용하면, 특별한 의도가 있지 않은 이상. 심심해 보일 수 있습니다. 그래서 유니티의 Standard Shader 에서도 여러가지 옵션을 두어 Albedo 에 합성할 수 있도록 Input 슬롯들을 제공하고 있습니다.
이미션(Emission)
이미션(Emission)값은 자주 접하는 용어는 아니었고, 셰이더 기초를 공부하면서 최근 의도치 않게 자주 접하게 됐습니다. 이미션은 사전뜻처럼 배출/방출의 의미로 광원 소스로 활용될 수 있는 개념입니다.
유니티 공식 문서에서 Emission map 예제를 보여주는데, 우측 인스팩터를 보면 알베도와 이미션 맵이 각각 어떤 방식으로 혼합되는지를 유추할 수 있습니다.
이미션이 발광원으로 쓰이는 속성인 만큼, 셰이더를 공부할 때 알베도 대신에 결과를 보는 용도로 사용되기도 하는 것 같습니다. 디본 셰이더에서 알베도에 값을 넣고 다른 설정을 끄거나 재정의 해주지 않으면 광원이나 환경의 영향을 받기 때문에 의도하지 않은 결과가 나올 수 있기 때문인 것 같습니다.
아래 샘플에서 동일한 값을 이미션에 셋팅한 결과(왼쪽)와 알베도에 셋팅한 결과(오른쪽)를 볼 수 있습니다. 확연한 차이를 위해 씬의 라이트를 아주 약하게 조정했습니다.
마무리
어렴풋이 인지하고 있던 부분을 이번 기회에 좀 더 명확하게 정리해보려고 검색도 좀 해보면서 많은 글들을 읽은 것 같습니다. 옛날부터 3D 그래픽스를 다뤘다면 좀 더 쉽게 이해할 수 있었을 것 같다는 생각도 듭니다. 요즘은 디퓨즈(Diffuse) 에 대한 정보보다는 PBR, 알베도(Albedo) 등의 용어를 더 많이 보게되는 만큼 그래픽스 분야가 발전하고 변화하고 있었다는 걸 보여주는 것 같습니다. 유니티 문서의 버전을 바꿔보면서도 그 변화를 느낄 수 있었을 정도니까요.
디퓨즈(Diffuse)
https://docs.unity3d.com/Manual/shader-NormalDiffuse.html
알베도(Albedo)
https://docs.unity3d.com/2022.2/Documentation/Manual/StandardShaderMaterialParameterAlbedoColor.html
이미션(Emission)
https://docs.unity3d.com/2022.2/Documentation/Manual/StandardShaderMaterialParameterEmission.html