언리얼 머티리얼 구성


일반적인 이펙트 제작에는 Surface를 사용하면 될 것 같다.

🟦 Opaque
- GPU 동작:
Blend Off, GBuffer에 풀 라이팅 정보 기록 - 언제 쓰나: 일반 메시. 알파 무시
- Unity 대응: Surface Type: Opaque
- 비용: 가장 쌈
🟦 Masked
- GPU 동작:
clip(opacity - threshold). Opaque 경로 사용 - 언제 쓰나: 잎사귀, 철망, 머리카락 카드. 이진(0/1) 알파
- Unity 대응: Opaque + Alpha Clipping
- 주의: Early-Z 깨짐, MSAA에서 알파-투-커버리지 옵션 고려
🟦 TranslucentGreyTransmittance ⭐ (기존 Translucent의 직계 후손)
- GPU 동작: 투과율을 단색(grey) 으로 처리. 즉 R=G=B 같은 값으로 뒤를 통과
- 언제 쓰나: 거의 모든 일반 반투명. 유리, 물, 연기, 일반 이펙트. 기존에 Translucent 쓰던 곳 90%는 여기
- Unity 대응: Surface Type: Transparent + Blending: Alpha
- 핵심 포인트: 색상별 투과(예: 빨간 유리가 빨갛게 통과)는 표현 못함. 단색 감쇠만
🟦 Additive
- GPU 동작:
Blend One One(또는 SrcAlpha One) - 언제 쓰나: 이펙트의 핵심. 불꽃, 발광, 마법, 빔, 폭발 광원 부분
- Unity 대응: Blending: Additive
- 주의: Unlit Shading Model이랑 거의 항상 같이 씀
🟦 ColoredTransmittanceOnly
- GPU 동작: 표면 반사(coverage)는 무시하고 색상별 투과만 표현.
Blend Zero SrcColor계열 - 언제 쓰나: 컬러 필터, 셀로판지, 색유리 순수 투과만 필요한 경우
- Unity 대응: 직접 대응 없음. Custom Shader로 Multiply 블렌딩 (
Blend DstColor Zero) 만들어야 함 - 차이점: TranslucentColoredTransmittance에서 반사를 뺀 가벼운 버전
🟦 AlphaComposite (Premultiplied Alpha) ⭐ 이펙트 필수
- GPU 동작:
Blend One OneMinusSrcAlpha - 언제 쓰나: 한 텍스처/머티리얼에 가산 영역과 반투명 영역을 같이 표현할 때. RGB에 알파가 미리 곱해진 텍스처
- Unity 대응: Blending: Premultiply
- 워크플로우: Photoshop/Substance에서 Premultiplied로 export → 알파 0인 부분도 RGB 가산 가능 → 불꽃 코어(밝음) + 외곽 연기(반투명)를 한 장으로
- VFX 작업자가 가장 사랑하는 모드
🟦 AlphaHoldout
- GPU 동작: 알파를 빼는 방향으로.
Blend Zero OneMinusSrcAlpha계열 - 언제 쓰나: 컴포지팅. 뒤에 그려진 픽셀의 알파를 "구멍 내는" 용도. 시네마틱이나 합성 시 매트 만들 때
- Unity 대응: 거의 안 씀. Custom Shader 필요
- 주의: 일반 게임 이펙트에서는 거의 쓸 일 없음
🟦 TranslucentColoredTransmittance
- GPU 동작: 색상별 투과 + 표면 반사 모두 표현. Substrate의 가장 완전한 반투명
- 언제 쓰나: 빨간 유리 너머가 빨갛게 보이는 정확한 표현이 필요할 때. 스테인드글라스, 고급 보석, 색유리 음료
- Unity 대응: 직접 대응 없음. HDRP의 Refraction Model + Absorption이 가장 가까움
- 비용: Substrate 중 가장 비쌈
Unity에서 넘어온 사람을 위한 핵심 정리
Unity의 Blending Mode 4종(Alpha / Premultiply / Additive / Multiply)에 Substrate의 컬러 투과 표현이 더해진 게 지금 보이는 목록이라고 이해
- Unity
Alpha≈ TranslucentGreyTransmittance - Unity
Premultiply≈ AlphaComposite - Unity
Additive≈ Additive - Unity
Multiply≈ ColoredTransmittanceOnly (개념적으로)

🔹 Unlit
- 무엇이 다른가: 라이팅 계산 자체를 안 함. Emissive만 출력
- 물리 모델: 없음. 그냥 색상 그대로
- 용도: 이펙트의 90%, UI, 홀로그램, 발광체, 스카이박스 메시
- Unity 대응: Unlit Shader / Unlit Shader Graph
- 비용: 가장 쌈. 라이팅 패스를 거의 스킵
- TA 팁: 파티클이나 빔 같은 거 만들 때 Default Lit 쓰면 안 됨. 반드시 Unlit
🔹 Default Lit
- 무엇이 다른가: 표준 PBR. GGX 마이크로패싯 스페큘러 + Lambert 디퓨즈
- 물리 모델: Cook-Torrance 기반 마이크로패싯 이론
- 용도: 거의 모든 일반 표면. 금속, 나무, 돌, 콘크리트, 플라스틱
- Unity 대응: URP Lit / HDRP Lit (Material Type: Standard)
- TA 팁: 의심스러우면 이걸로 시작. 95%의 표면이 여기 들어감
🔹 Subsurface (간이 SSS)
- 무엇이 다른가: 빛이 표면 안으로 살짝 들어갔다 나오는 효과를 백라이팅 근사로 표현. 실제 산란 시뮬레이션 안 함
- 물리 모델: 단순화된 wrap diffuse + view-dependent transmission
- 용도: 양초, 옥, 우유, 왁스, 간단한 피부. 정확도보다 가벼움 우선
- Unity 대응: HDRP Material Type: Subsurface Scattering (Diffusion Profile 없이 쓰는 모드)
- 비용: Default Lit보다 약간 비쌈
- 차이점: 아래의 Subsurface Profile보다 가볍지만 부정확
🔹 Preintegrated Skin
- 무엇이 다른가: 곡률(curvature) 기반 산란을 LUT(Look-Up Texture) 에 미리 구워둠. 곡면이 심한 곳일수록 빛이 더 퍼지게
- 물리 모델: Pre-integrated subsurface scattering (Eric Penner, 2011)
- 용도: 모바일/가벼운 피부. 정면 얼굴이 많은 게임
- Unity 대응: 직접 대응 없음. URP에서 비슷한 LUT 기법 직접 구현하는 경우가 있음
- 비용: Subsurface Profile보다 훨씬 쌈
- 한계: 그림자 영역 산란이 부자연스러움
🔹 Clear Coat
- 무엇이 다른가: 두 개의 스페큘러 레이어. 베이스 머티리얼 위에 투명한 코팅 한 겹
- 물리 모델: 이중 BRDF. 코팅 레이어(GGX) + 베이스 레이어
- 용도: 자동차 도장, 래커, 코팅된 목재, 캔디 페인트, 카본 파이버
- Unity 대응: HDRP Coat Mask 옵션, URP의 Complex Lit
- TA 팁: 카본 파이버 같은 거 만들 때 베이스에 이방성 줘서 짜임 표현 + 코팅으로 광택 → 멋진 결과
🔹 Subsurface Profile ⭐ (고품질 피부)
- 무엇이 다른가: Separable SSS. 화면공간에서 가우시안 블러로 산란을 표현. 별도 Subsurface Profile 에셋에서 산란 거리/색상 지정
- 물리 모델: Jimenez Separable SSS (2015). RGB 채널별로 다른 산란 거리 (빨강이 가장 멀리)
- 용도: 고품질 피부, 캐릭터 얼굴
- Unity 대응: HDRP Diffusion Profile + Material Type: Subsurface Scattering (거의 1:1)
- 비용: 화면공간 패스 추가로 비쌈
🔹 Two Sided Foliage
- 무엇이 다른가: 빛이 잎사귀를 뒤로 통과하는 표현. 백라이팅 시 잎이 환하게 빛남
- 물리 모델: 양면 transmission + Default Lit
- 용도: 나뭇잎, 풀, 얇은 천 (그늘에서 햇빛 받는 잎)
- Unity 대응: HDRP Material Type: Translucent. URP는 보통 Custom Shader
- TA 팁: Two Sided 옵션도 같이 켜야 함. SubsurfaceColor에 잎의 투과색(연한 노란빛 녹색) 넣음
🔹 Hair
- 무엇이 다른가: Marschner 모델. 머리카락의 원통형 구조에서 일어나는 R, TT, TRT 세 가지 광 경로를 표현
- 물리 모델: Marschner 2003. 이방성 스페큘러 두 줄(primary/secondary highlight)
- 용도: 머리카락, 털. 카드 메시든 스트랜드든
- Unity 대응: HDRP Hair Master Stack (거의 1:1)
- 핵심: 머리카락에 Default Lit 쓰면 너무 플라스틱 같음. 반드시 Hair 모델
🔹 Cloth
- 무엇이 다른가: Charlie/Ashikhmin 분포. 일반 GGX 대신 가장자리(grazing angle)에서 밝게 빛나는 특성
- 물리 모델: Production Friendly Microfacet Sheen BRDF (Estevez & Kulla, 2017)
- 용도: 벨벳, 새틴, 코튼, 양털, 실크. 빛을 받는 각도에 따라 가장자리가 환해지는 직물
- Unity 대응: HDRP Material Type: Fabric (Cotton/Wool 또는 Silk)
🔹 Eye
- 무엇이 다른가: 각막 굴절 + 홍채 시차(parallax) 시뮬레이션. 각막의 투명한 돔과 그 아래 홍채를 따로 처리
- 물리 모델: 이중 레이어 + 굴절
- 용도: 고품질 캐릭터 눈
- Unity 대응: HDRP Eye Master Stack
- 비용: 비쌈. 보통 시네마틱 캐릭터에만
🔹 SingleLayerWater
- 무엇이 다른가: 언리얼 5에서 새로 들어온 물 전용 셰이딩. 흡수, 산란, 굴절을 GBuffer 한 패스에 압축
- 물리 모델: Beer-Lambert 흡수 + 단순 산란 근사
- 용도: 호수, 바다, 강, 수영장. 일반 Translucent 물보다 훨씬 정확
- Unity 대응: HDRP의 Water System (별도 시스템) / URP는 직접 구현
- 장점: Deferred 경로에서 동작 → 일반 Translucent 물의 라이팅 제약 회피
🔹 Thin Translucent
- 무엇이 다른가: 얇은 표면 전용 굴절 모델. 일반 Translucent는 두꺼운 매질 가정인데, 비눗방울/유리창처럼 두께가 무시할 만한 경우 단순화
- 물리 모델: Snell 법칙 안 쓰고 굴절 무시. 색상별 투과만
- 용도: 유리창, 비눗방울, 안경 렌즈, 비닐
- Unity 대응: HDRP의 Refraction Model: Thin
- 차이점: 두꺼운 유리(잔)는 일반 Translucent, 얇은 유리(창문)는 Thin Translucent
🔹 From Material Expression ⭐ 고급
- 무엇이 다른가: 셰이딩 모델을 머티리얼 그래프 노드로 동적 결정. 픽셀마다 다른 셰이딩 모델 사용 가능
- 용도: 마스크로 영역별 다른 셰이딩. 예: 한 캐릭터에서 피부 부분만 SSS, 옷은 Cloth, 나머지는 Default Lit을 하나의 머티리얼에서
- Unity 대응: 직접 대응 없음. Unity에서는 머티리얼/셰이더를 분리하거나 멀티 패스로 처리해야 함
- TA 팁: 강력하지만 GBuffer ShadingModelID를 픽셀 단위로 출력해야 해서 약간의 오버헤드. 캐릭터 통합 머티리얼 만들 때 유용