쉐이더 블렌드 모드 정리

lenore·2026년 4월 21일

Src는 Source의 약자로 셰이더가 출력하는 현재 픽셀(소스 텍스처) 을 의미하고,
Dst는 Destination의 약자로 셰이더가 출력될 목적지, 즉 이미 렌더링된 배경 픽셀 을 의미합니다.

Blend 커맨드 구조
Blend 모드는 계수만 지정하는 문법이다. SrcColor, DstColor는 항상 고정으로 붙어있고 A, B 자리에 계수만 결정한다.
Final = SrcColor × A + DstColor × B

계수 - 값
One - 1
Zero - 0
SrcAlpha - 소스 알파
OneMinusSrcAlpha - 1 - 소스 알파
DstAlpha - 목적지 알파
OneMinusDstAlpha - 1 - 목적지 알파
SrcColor - 소스 RGB (채널별로 곱해짐)
OneMinusSrcColor - 1 - 소스 RGB
DstColor - 목적지 RGB (채널별로 곱해짐)
OneMinusDstColor - 1 - 목적지 RGB

One One → SrcColor × 1 + DstColor × 1 — 알파를 아예 안 씀. 텍스처에 알파 채널이 없어도 되고, 검정 픽셀은 0을 더하므로 자연스럽게 투명처럼 동작
SrcAlpha One → SrcColor × SrcAlpha + DstColor × 1 — 알파로 소스 강도를 조절할 수 있어 파티클처럼 페이드 인/아웃이 필요한 경우에 적합

Premultiplied Alpha
일반 텍스처:
RGB = (1, 0, 0), A = 0.5 ← RGB와 알파가 분리되어 저장
Premultiplied 텍스처:
RGB = (0.5, 0, 0), A = 0.5 ← RGB에 알파가 이미 곱해진 채로 저장
그래서 셰이더에서 SrcColor × SrcAlpha 계산을 안 해도 되기 때문에 Src 계수가 SrcAlpha 대신 One이 됩니다.
반투명 경계에서 생기는 검은 테두리(Dark Fringe) 아티팩트가 없음
텍스처 자체가 Premultiplied 포맷으로 제작된 경우에만 써야 하며, 일반 텍스처에 이 블렌드를 쓰면 색이 어둡게 나옵니다

profile
VFX Artist in Korea

0개의 댓글