Slab 노드 활용
Substrate의 핵심 빌딩 블록인 Slab BSDF 노드의 모든 입력 파라미터를 마스터합니다.
Slab BSDF 개요
물질의 슬랩을 정의하는 통합 노드
Substrate Slab BSDF는 "물질의 슬랩(판)"을 정의하는 통합 노드입니다. 인터페이스(표면 반사 특성)와 미디엄(내부 매질 특성)을 하나의 노드로 기술하여, 기존의 Default Lit, Subsurface, Clear Coat 등 모든 셰이딩 모델을 대체합니다.
// Slab = Interface (표면) + Medium (내부)
┌─────────────────────────────────┐
│ Interface (표면) │
│ → 반사, 굴절, 코팅 특성 │
│ → DiffuseAlbedo, F0, Roughness │
├─────────────────────────────────┤
│ Medium (내부 매질) │
│ → 빛의 내부 전파 특성 │
│ → MFP (Mean Free Path) │
│ → 산란, 흡수, 두께 │
└─────────────────────────────────┘
// 이 구조로 금속, 유리, 피부, 코팅 등
// 모든 재질을 통합적으로 표현
Slab 입력 파라미터 - Interface
표면 반사 특성을 정의하는 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| Diffuse Albedo | Vector3 | (0.18, 0.18, 0.18) | 비금속 표면의 디퓨즈 색상. 기존 Base Color에 해당 |
| F0 | Vector3 | (0.04, 0.04, 0.04) | 정면 반사율. 비금속=0.04, 금속=반사색상 |
| F90 | Vector3 | (1, 1, 1) | 그레이징 앵글 반사율. 보통 1.0 |
| Roughness | Scalar | 0.5 | 표면 거칠기. 기존과 동일 |
| Anisotropy | Scalar | 0 | 이방성 반사. 브러시드 메탈 등에 사용 |
| Normal | Vector3 | (0,0,1) | 탄젠트 스페이스 노말 |
| Emissive Color | Vector3 | (0,0,0) | 자체 발광. 기존과 동일 |
| Second Roughness | Scalar | 0 | 듀얼 스페큘러 로브. 코팅 표현에 유용 |
| Fuzz Amount | Scalar | 0 | 표면 보풀/벨벳 효과. Cloth 셰이딩 |
| Fuzz Color | Vector3 | (0,0,0) | 보풀 색상 |
Substrate에서는 Metallic 파라미터가 없습니다. 대신 F0를 직접 설정합니다. 비금속은 F0=(0.04), 금속은 F0=Base Color 값으로 설정합니다. 이는 물리적으로 더 정확하며, 중간 Metallic 값으로 인한 비물리적 결과를 방지합니다.
Slab 입력 파라미터 - Medium
내부 매질 특성을 정의하는 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
| Mean Free Path (MFP) | Vector3 | 빛이 매질 내부에서 산란 없이 이동하는 평균 거리. SSS 강도 제어 |
| Scattering Distribution | Scalar | 산란 방향성. -1(후방산란)~1(전방산란), 0(등방산란) |
| Slab Thickness | Scalar | 슬랩의 두께. Thin Translucent 표현에 사용 |
// 기존 Subsurface 셰이딩 모델 대신
// Slab의 MFP로 SSS를 구현
Substrate Slab BSDF
DiffuseAlbedo: 피부 색상
F0: (0.028, 0.028, 0.028) // 피부의 F0
Roughness: 0.4
// Medium 파라미터로 SSS 활성화
Mean Free Path: (1.2, 0.4, 0.1) // RGB (cm)
// R>G>B: 빨간빛이 더 멀리 투과 → 피부 느낌
Scattering Distribution: 0.9
// 전방산란 우세 (피부의 특성)
Mean Free Path는 센티미터(cm) 단위입니다. 값이 클수록 빛이 더 멀리 투과합니다. 피부는 R: 1~2cm, G: 0.3~0.5cm, B: 0.05~0.1cm 정도가 자연스럽습니다. MFP가 0이면 SSS가 비활성화되어 일반 표면처럼 동작합니다.
기존 재질을 Slab으로 구현하기
Default Lit 패턴과의 매핑
비금속 (플라스틱, 나무 등)
Substrate Slab BSDF
DiffuseAlbedo: [Base Color 텍스처]
F0: (0.04, 0.04, 0.04) // 비금속 기본
Roughness: [Roughness 텍스처]
Normal: [Normal Map]
// MFP = 0 (SSS 없음)
금속 (철, 금, 구리 등)
Substrate Slab BSDF
DiffuseAlbedo: (0, 0, 0) // 금속은 디퓨즈 없음
F0: [금속 반사 색상] // 금: (1.0, 0.71, 0.29)
Roughness: [Roughness 텍스처]
Normal: [Normal Map]
혼합 표면 (녹슨 금속 등)
// Metallic 마스크로 F0와 DiffuseAlbedo를 분기
Lerp
A: (0.04) // 비금속 F0
B: [금속 반사색] // 금속 F0
Alpha: [Metallic 마스크]
→ F0
Lerp
A: [비금속 Base Color]
B: (0, 0, 0) // 금속은 디퓨즈 없음
Alpha: [Metallic 마스크]
→ DiffuseAlbedo
Substrate에서도 기존 Make/BreakMaterialAttributes를 사용하여 레거시 방식으로 작업할 수 있습니다. 내부적으로 Slab으로 자동 변환됩니다. 하지만 Substrate의 고유 기능(MFP, Vertical Layering 등)을 활용하려면 Slab 노드를 직접 사용하세요.
핵심 요약
- Slab BSDF는 Interface(표면)와 Medium(내부)을 통합한 Substrate의 핵심 노드입니다.
- Interface 파라미터: DiffuseAlbedo, F0, Roughness, Normal, Anisotropy, Fuzz 등.
- Medium 파라미터: MFP(SSS 강도), Scattering Distribution, Slab Thickness.
- Metallic 대신 F0를 직접 설정합니다. 비금속=0.04, 금속=반사색상.
- MFP > 0이면 SSS가 자동 활성화됩니다. 별도의 Shading Model 변경이 필요 없습니다.
- 기존 Base Color/Metallic 워크플로우에서 DiffuseAlbedo/F0 워크플로우로의 전환이 핵심입니다.
도전 과제
배운 내용을 직접 실습해보세요
MakeSlab 노드의 DiffuseAlbedo, F0, F90, Roughness, Anisotropy 파라미터를 하나씩 변경하며 Sphere에서 결과를 관찰하세요. 특히 F0와 F90의 차이가 프레넬에 미치는 영향을 확인하세요.
MakeSlab 노드에서 SSProfile 설정과 MeanFreePath를 조정하여 피부, 왁스, 대리석 같은 반투광(Subsurface Scattering) 표면을 구현하세요.
자주 사용하는 Slab 설정(예: 차량 페인트, 인체 피부)을 Material Function으로 캡슐화하여 재사용 가능한 라이브러리를 구축하세요.