머티리얼 블렌드 모드

머티리얼 블렌드 모드를 살펴보고, 머티리얼 블렌드 모드가 머티리얼의 렌더링에 미치는 영향을 알아봅니다.

Choose your operating system:

Windows

macOS

Linux

블렌드 모드(Blend Mode)는 현재 머티리얼의 출력을 이미 배경에 그려진 것과 어떻게 블렌딩할 것인지 나타냅니다. 더 기술적으로 표현하자면 블렌드 모드는 이 머티리얼을 다른 픽셀 앞에 렌더링할 때, 엔진에서 이 머티리얼( 소스 컬러 )과 이미 프레임 버퍼에 있는 것( 대상 컬러 )을 결합하는 방식을 조절합니다.

블렌드 모드 옵션은 다음과 같이 나머지 베이스 머티리얼 프로퍼티와 함께 디테일 패널에서 찾을 수 있습니다.

블렌드 모드 드롭다운 메뉴

이 문서는 카메라와 벽 사이에 배치된 구체를 사용하여 다양한 블렌드 모드를 시연합니다. 구체 머티리얼의 블렌드 모드를 변경하여 오브젝트가 그 뒤의 픽셀과 블렌딩되는 방법을 볼 수 있습니다.

블렌드 모드 데모 설정

불투명

불투명(Opaque) 블렌드 모드는 가장 단순한 모드로, 가장 자주 사용하게 될 가능성이 높습니다. 빛이 통과하지도, 투과되지도 않는 표면을 정의합니다. 플라스틱, 금속, 돌, 그리고 기타 표면 유형 대부분에 적합합니다. 카메라 시점에서 보면 금색 구체가 뒤의 벽을 완전히 가리고 있습니다.

불투명 블렌드 모드

마스크드

마스크드(Masked) 블렌드 모드는 가시성을 켜기와 끄기 둘 중에서 선택적으로 제어해야 할 때 사용합니다. 쇠사슬 울타리나 쇠살대를 시뮬레이션하는 머티리얼을 예로 들어 보겠습니다. 어떤 부분은 속이 차 있는 반면, 다른 부분은 보이지 않을 것입니다. 이러한 머티리얼에는 마스크드 블렌드 모드가 가장 적합합니다.

아래는 마스크드 머티리얼 그래프로, 오파시티 마스크(Opacity Mask) 입력에 연결된 흑백 줄무늬 텍스처가 나타나 있습니다. 마스크의 흰색 부분은 렌더링되지만 검은색 부분은 보이지 않습니다. 마스크드 머티리얼을 사용하면 중간 수준의 오파시티가 없습니다.

마스크드 머티리얼 그래프

카메라 시점에서 이 머티리얼을 볼 경우 다음과 같습니다.

마스크드 머티리얼

투명한 것렌더링되지 않은 것 의 차이점을 아는 것이 중요합니다. 유리처럼 투명한 표면은 여전히 리플렉션(스페큘러) 형태로 라이트와 상호작용합니다. 그러나 마스크드 모드에서 컬링된 픽셀은 그리지 않기 때문에 그 영역에서는 리플렉션이 전혀 보이지 않습니다. 리플렉션이나 스페큘러 효과를 유지하고 싶다면 반투명(Translucent) 블렌드 모드를 사용하거나 레이어드 머티리얼 생성을 고려해 보세요.

또한 이 기능은 마스크가 적용된 영역에는 렌더링하지 않아 전혀 계산되지 않으므로 GPU 퍼포먼스 비용 절약으로 이어집니다.

오파시티 클립 마스크

마스크드 블렌드 모드를 사용할 때는 오파시티 마스크 클립 값(Opacity Mask Clip Value) 프로퍼티에 특별한 주의를 기울여야 합니다. 이 프로퍼티에 저장되는 0~1 스칼라 값은 컷오프 포인트로 사용할 오파시티 마스크 텍스처의 값을 제어하며, 이 값을 넘어서는 어두운 픽셀은 렌더링되지 않습니다.

오파시티 마스크 클립 값(슬라이더를 드래그하여 미리 볼 수 있습니다.)

위 예제의 머티리얼에는 양면(Two Sided) 프로퍼티가 True 로 설정(체크 표시)되어 있으므로 박스 안에서도 볼 수 있습니다.

또한 여기의 인터랙티브 예제에서 확인할 수 있는 모습과는 달리, 오파시티 마스크 클립 값(Opacity Mask Clip Value) 프로퍼티는 런타임에 변경하도록 설계된 것이 아닙니다.

반투명

반투명(Translucent) 블렌드 모드는 일정한 형태의 투명도가 필요한 오브젝트에 사용합니다. 투명도 수준을 조절할 수 있다는 점에서 마스크드 블렌드 모드와는 다릅니다.

반투명 머티리얼 그래프

이 블렌드 모드는 오파시티(Opacity) 값이나 텍스처를 받은 다음, 검은색 영역은 완전히 투명하게, 흰색 영역은 완전히 불투명하게, 그리고 그 중간의 다양한 그러데이션 값은 그에 상응하는 투명도를 구현하는 방식으로 표면에 적용합니다. 예를 들어, 검은색에서 흰색이 되는 그레이디언트를 오파시티 입력에 연결하면 메시 맨 윗부분은 완전히 투명하고 점차 아래로 내려갈수록 완전히 불투명해지는 구체가 만들어집니다.

구체의 반투명 그레이디언트

반투명 머티리얼을 사용할 때 중요한 고려사항은 현재 반투명 머티리얼이 스페큘러 효과를 지원하지 않는다는 것입니다. 표면에 리플렉션이 보이지 않는다는 뜻입니다. 그러나 이러한 리플렉션은 다음과 유사한 노드 네트워크의 큐브맵을 사용하여 가짜로 만들어낼 수 있습니다. 큐브맵 텍스처는 단순히 베이스 컬러 맨 위에 추가됩니다.

애디티브

애디티브(Additive) 블렌드 모드는 단순히 머티리얼의 픽셀을 취해서 배경의 픽셀에 더합니다. Photoshop의 Linear Dodge (Add) 블렌드 모드와 매우 유사한 방식입니다. 어두워지지 않는다는 뜻으로, 모든 픽셀 값을 더하기 때문에 검은색은 투명하게만 렌더링됩니다. 이 블렌드 모드는 불, 증기, 홀로그램과 같은 다양한 특수 효과에 좋습니다.

애디티브 머티리얼 그래프

반투명 블렌드 모드와 마찬가지로, 이 블렌드 모드는 스페큘러 효과(리플렉션)를 반영하지 않습니다. 블렌딩의 애디티브 속성 때문에 사용하지 않을 수도 있지만, 위의 반투명 섹션에서 확인한 바와 같이 큐브맵을 사용하는 방법으로 리플렉션과 비슷한 이펙트를 시뮬레이션할 수 있습니다.

아래 이미지에는 두 번째 구체가 씬에 추가되었습니다. 두 구체가 오버랩되는 부분에서 픽셀이 함께 더해져 밝아진 것을 확인해 보세요.

애디티브 머티리얼 예시

애디티브 머티리얼의 단점은 밝은 색의 배경에서는 잘 보이지 않을 수 있다는 것입니다. 구체의 사이드 뷰에서 이 단점을 확인할 수 있습니다.

애디티브 머티리얼 사이드 뷰

문제를 해결하는 방법 중 하나는 미리 곱해진 알파 채널이 있는 텍스처에 AlphaComposite 블렌드 모드를 사용하는 것입니다. 이 방법으로 밝은 씬의 채도와 가시성을 향상할 수 있습니다.

변조

변조(Modulate) 블렌드 모드는 머티리얼의 값에 배경의 픽셀 값을 곱합니다. Photoshop의 Multiply 블렌드 모드와 매우 유사한 방식으로, 어두워지는 이펙트를 구현합니다.

변조 머티리얼 그래프

위의 그래프에서 머티리얼 셰이딩 모델은 라이팅제외(Unlit) 로, 블렌드 모드는 변조(Modulate) 로 설정되어 있습니다. Constant3 Vector가 이미시브(Emissive) 입력에 연결되어 표면 컬러를 정의합니다.

변조 머티리얼 예시

구체가 여러 개일 경우 오버랩되는 픽셀이 함께 곱해져 어두워진다는 점에 유의하세요.

변조 블렌드 모드는 특정 파티클 이펙트에 최적이지만, 라이팅이나 독립 반투명(Separate Translucency)을 지원하지는 않으므로 주의가 필요합니다.

AlphaComposite

AlphaComposite은 알파를 미리 곱한 텍스처를 가진 머티리얼에서 사용됩니다. 이는 이미지가 저장되기 전에 RGB 컬러 채널이 알파 채널에 미리 곱해진다는 것을 의미합니다. AlphaComposite 블렌드 모드는 밝은 컬러의 파티클 및 VFX에 애디티브 또는 반투명 블렌드 모드 대신 유용하게 사용할 수 있습니다.

애디티브 블렌딩과 비교하면 AlphaComposite 머티리얼은 가시성이 더 높고, 밝은 색의 배경에서 더 높은 컬러 채도를 유지합니다. 애디티브가 겹쳐져 머티리얼의 밝은 영역이 순수한 흰색으로 색이 날아갈 확률이 더 낮습니다.

아래 비디오는 AlphaComposite 머티리얼과 오파시티 파라미터를 보여줍니다. 오파시티 레벨이 낮으면 머티리얼이 애디티브 블렌드처럼 작동하는 반면, 오파시티 레벨이 0.5 이상이면 반투명 블렌딩과 유사해져 마스크 가장자리 가까이에서 흥미로운 트랜지션 이펙트가 구현됩니다.

레퍼런스

AlphaHoldout

AlphaHoldOut 블렌드 모드를 사용하면 뷰 스페이스에서 머티리얼의 알파를 ‘유지'하여 오브젝트를 통과해 바로 뒤에 구멍을 뚫을 수 있습니다. 다음 이미지는 AlphaHoldout을 구현하기 위한 카메라 및 씬 레이아웃입니다.

  1. 카메라입니다.

  2. 전경의 스태틱 메시가 ‘구멍을 뚫는' 오브젝트 역할을 합니다. AlphaHoldout 머티리얼 이 이 메시에 적용됩니다. 이 머티리얼은 라이팅제외(Unlit) 셰이딩 모델을 사용해야 합니다.

  3. 받는 표면(구멍을 뚫을 표면)은 AlphaHoldout 오브젝트 뒤에 배치됩니다. 이 경우에는 벽돌 벽이 받는 표면에 해당합니다. 받는 표면의 머티리얼은 반드시 반투명, 애디티브, 변조 또는 AlphaComposite 블렌드 모드 중 하나를 사용해야 합니다. AlphaHoldout 머티리얼은 불투명 머티리얼과 함께 작동하지 않습니다.

  4. 구멍을 통해서 보일 씬의 배경입니다.

카메라 시점에서는 받는 표면에 생긴 투명한 구멍이 보이며, 이 구멍을 통해 뒤의 오브젝트를 확인할 수 있습니다.

AlphaHoldout 예시

AlphaHoldOut 머티리얼은 별도의 스태틱 메시 에셋에 있으므로, 에디터 안에서 손쉽게 이동하고 게임에서 애니메이팅할 수 있습니다.

블렌드 모드 공식

모드

설명

BLEND_Opaque

최종색 = 소스 컬러. 배경 위에 머티리얼을 그립니다. 이 블렌드 모드는 라이팅과 호환됩니다.

BLEND_Masked

OpacityMask > OpacityMaskClipValue인 경우 최종색 = 소스 컬러. 그 외의 경우 픽셀을 버립니다. 이 블렌드 모드는 라이팅과 호환됩니다.

BLEND_Translucent

최종색 = 소스 컬러 * 오파시티 + 대상 컬러 * (1 - 오파시티). 이 블렌드 모드는 다이내믹 라이팅과 호환되지 않습니다.

BLEND_Additive

최종색 = 소스 컬러 + 대상 컬러. 이 블렌드 모드는 다이내믹 라이팅과 호환되지 않습니다.

BLEND_Modulate

최종색 = 소스 컬러 x 대상 컬러. 이 블렌드 모드는 데칼 머티리얼이 아닌 이상, 다이내믹 라이팅 또는 포그와 호환되지 않습니다.

BLEND_AlphaComposite

최종색 = 소스 컬러 + 대상 컬러 * (1 - 원본 오파시티).

BLEND_AlphaHoldout

최종색 = 대상 컬러 * (1 - 원본 오파시티). 이 블렌드 모드는 다이내믹 라이팅과 호환되지 **않습니다.**