디칼과 프로젝션
Deferred Decal, DBuffer Decal, 프로젝션 머티리얼, 메시 디칼의 활용법.
Deferred Decal 기초
표면 위에 투영하는 머티리얼
Deferred Decal은 G-Buffer 위에 직접 그려지는 머티리얼로, 총탄 자국, 얼룩, 균열, 낙서 등 표면 디테일을 추가합니다. Decal Actor로 레벨에 배치합니다.
Material Properties:
Material Domain: Deferred Decal
Blend Mode: Translucent
Decal Blend Mode: DBuffer Translucent Color, Normal, Roughness
Node Setup:
Base Color: [디칼 텍스처 RGB]
Normal: [디칼 노말맵]
Roughness: 0.6
Opacity: [디칼 텍스처 Alpha]
// Decal Actor에 머티리얼 할당
// Place Actors → Decal → 위치/크기/회전 조절
DBuffer vs Non-DBuffer
두 가지 디칼 렌더링 방식 비교
| 특성 | Non-DBuffer (Stain) | DBuffer |
|---|---|---|
| 렌더링 시점 | 라이팅 후 | 라이팅 전 (G-Buffer 수정) |
| 라이팅 영향 | 받지 않음 (색만 변경) | 완전히 받음 (노말/러프니스 포함) |
| 노말맵 지원 | 불가 | 가능 |
| 성능 | 저 | 중 |
| 활성화 | 기본 | Project Settings에서 DBuffer 활성화 필요 |
Project Settings → Rendering → DBuffer Decals를 활성화하세요. DBuffer 디칼은 Base Pass 전에 G-Buffer를 수정하므로 라이팅에 완전히 참여합니다. 총탄 자국의 노말맵이 조명에 반응하려면 DBuffer가 필수입니다.
Decal Blend Mode 옵션
디칼이 영향을 미치는 채널 선택
| Decal Blend Mode | 영향 채널 | 용도 |
|---|---|---|
| Translucent | Color만 (Non-DBuffer) | 단순 얼룩, 피 자국 |
| Stain | Color만 (Multiply 블렌딩) | 먼지, 그을음 (어둡게) |
| DBuffer Translucent Color | Base Color | 색상만 변경하는 디칼 |
| DBuffer Translucent Color, Normal | Base Color + Normal | 균열, 스크래치 |
| DBuffer Translucent Color, Normal, Roughness | 전체 | 완전한 표면 오버라이드 |
필요한 채널만 선택하세요. 색상만 바꾸는 얼룩 디칼에 Normal과 Roughness까지 출력하면 불필요한 G-Buffer 쓰기가 발생합니다. "DBuffer Translucent Color"만으로 충분한 경우가 많습니다.
디칼 활용 팁
실전 디칼 사용 전략
Sort Order
Decal Component의 Sort Order로 겹치는 디칼의 렌더링 순서를 제어합니다. 값이 높을수록 위에 그려집니다.
Fade Range
Fade Start/End Distance로 원거리에서 자동 페이드 아웃. 성능과 시각적 깔끔함을 모두 확보합니다.
Receives Decals
캐릭터 메시 등 디칼을 받지 않아야 할 오브젝트는 Receives Decals = false로 설정합니다.
화면에 보이는 디칼 수가 과도하면 성능에 영향을 미칩니다. 디칼 풀링(오래된 디칼을 재사용)과 거리 기반 컬링을 구현하여 동시에 표시되는 디칼 수를 50~100개 이내로 관리하세요.
핵심 요약
- Deferred Decal은 Material Domain을 Deferred Decal로 설정한 머티리얼입니다.
- DBuffer 디칼은 라이팅 전에 G-Buffer를 수정하여 노말맵과 러프니스가 조명에 참여합니다.
- Decal Blend Mode로 영향 채널(Color, Normal, Roughness)을 선택하며, 필요한 최소 채널만 사용합니다.
- Sort Order, Fade Distance, Receives Decals로 디칼 관리를 세밀하게 제어합니다.
도전 과제
배운 내용을 직접 실습해보세요
Material Domain을 Deferred Decal로 설정하고, 총알 구멍 텍스처를 사용한 데미지 디칼을 만드세요. Decal Blend Mode를 Translucent, Stain, Normal 각각으로 테스트하세요.
블루프린트에서 라인트레이스 히트 위치에 Decal Component를 동적으로 스폰하는 시스템을 만드세요. 디칼의 크기, 회전, Fade Out 시간을 랜덤하게 변화시켜 자연스러움을 더하세요.
Runtime Virtual Texture를 사용하여 디칼이 지형에 완벽히 블렌딩되는 시스템을 구현하세요. RVT Output 노드로 Base Color와 Normal을 지형에 직접 기록하세요.