Blend Mode이란?
- 현재 머티리얼의 출력이 배경에 이미 그려져 있는 것과 어떻게 블렌딩 되는지를 설명
- 이 머티리얼이 다른 픽셀 앞에 렌더링될 때 이 머티리얼(소스 컬러)을 프레임 버퍼에 이미 있는 것(대상 컬러)과 결합하는 방법을 제어할 수 있음
1. Opaque (불투명한)
- 가장 간단하고 자주 사용
- 빛이 통과하지도 투과하지도 않는 표면
- 예 : 플라스틱, 금속, 석재 등 대부분
2. Masked (가면을 쓴)
- 바이너리(켜기/끄기) 방식으로 100% 투명이거나 100% 불투명함
- 예 : 사슬로 연결된 울타리나 격자처럼 일부 영역은 보이지 않는 경우
- 불투명 마스크 입력에 검은색, 흰색 줄무늬 텍스쳐가 연결된 머티리얼 그래프
(흰색 부분은 렌더링 되고 검정부분은 보이지 않음)
- 마스크드 머티리얼에는 반투명 없음
Transparent(투명한) vs 렌더링되지 않음
Transparent(투명) vs 렌더링되지 않음의 차이를 알아둬야 함!
Transparent
- 투명한 머티리얼은 빛과 상호작용함
- 예 : 유리는 투명한 머티리얼로서, 뒤의 객체를 보여주면서도 반사와 굴절 효과가 나타남
렌더링 되지 않음
- Masked에서 바이너리 '끄기'로 선택한 것
- 머티리얼이 렌더링 과정에서 전혀 그려지지 않음을 의미
- 빛과 상호작용하지 않음
결론
투명한 물체는 빛을 어느정도 통과시키면서 빛과 상호작용하지만, 렌더링되지 않는 부분은 빛과의 상호작용이 전혀 없어서 아무것도 보이지 않게 됨
3. Translucent (반투명한)
- 가장 비싼 블렌드 모드
- 특정 형태의 투명도가 필요한 객체에 사용
- 투명도 조절 가능 (반투명 가능)
- 검은색 영역은 투명, 흰색 영역은 불투명
4. Additive (첨가물)
- 단순히 머티리얼의 픽셀을 가져와서 배경의 픽셀에 추가함
(픽셀 순서와 상관없이 씬에 더해버림) = 밝아지기만 함
- 이는 겹쳐져도 겹쳐진 부분이 어두워지지 않음을 의미하고 모든 픽셀 값이 함께 추가되므로 검정색은 투명하게 렌더링 됨
- 예 : 불, 증기, 홀로그램 등
❗ 컴퓨터 그래픽스 내 색상 값의 곱셈과 덧셈
아래 내용은 각 색상 채널의 값이 0.0(완전히 검은색)과 1.0(완전히 밝은색) 사이에서 변화할 때, 1.0에 가까울수록 원래 색에 가깝고, 0.0에 가까울수록 검은색에 가까워진다는 사실에 기반함
곱셈
- 두 색상 값의 해당 채널을 곱하면 결과적으로 더 어두운 색상이 생성됨
덧셈
- 두 색상 값을 더하면 해당 채널의 최종 값이 증가하여 결과적으로 더 밝은 색상이 생성됨
5. Modulate (조절하다)
- 머티리얼 값을 배경 픽셀에 곱함 (픽셀을 씬에 곱함) = 어두워지기만 함
- Additive와는 다르게 겹쳐지면 어두워지는 효과 생성
- 예 : 특정 파티클 효과
6. AlphaComposite(premultiplied) (알파복합체)
- 텍스처가 이미지 저장 전에 알파 채널로 RGB 색상 채널이 사전에 곱해져서(premultiplied) 저장된 머티리얼에서 사용됨
- 이미 색상 정보에 알파 채널이 적용되어 있어서 렌더링 시 색상과 알파의 복합 효과를 더 정확하고 효과적으로 표현할 수 있게 해줌
7. AlphaHoldout (알파유지)
- 머티리얼의 알파를 유지하여 뷰 공간에서 바로 뒤에 있는 개체에 구멍을 뚫을 수 있음
참고 : https://docs.unrealengine.com/5.2/en-US/material-blend-modes-in-unreal-engine/