Custom Depth Pass를 사용하면,
화면에 출력되지 않는 텍스처(Offscreen Texture)에 게임 화면이 렌더링된다.
렌더되는 정보는 깊이와 스텐실 정보다.
활성화 된 컴포넌트가 있다면 렌더가 되는 것이다.
따라서 특징은 두가지다.
1. 임의로 한 번 더 렌더링한다.
2. 원하는 컴포넌트만 출력한다.
뷰모드 - 버퍼 시각화를 통해 결과를 확인할 수 있다. (커스템 뎁스, 커스텀 스텐실)

1. 스텐실 버퍼(Stencil Buffer)란?
스텐실 버퍼는 화면의 각 픽셀에 대해 **8비트의 정수 값(0~255)**을 저장할 수 있는 일종의 '마스크(Mask)' 데이터 공간입니다.
- 역할: 특정 물체가 그려진 영역에 "여기는 1번이야", "저기는 2번이야"라고 숫자로 태그를 붙이는 것과 같습니다.
- 특징: 이 값 자체는 화면에 보이지 않지만, 포스트 프로세스(Post Process) 단계에서 이 숫자를 읽어와서 "1번 숫자가 써진 곳에만 외곽선을 그려라" 같은 명령을 내릴 수 있게 해줍니다.
2. 커스텀 뎁스(Custom Depth)와의 관계
언리얼에서 스텐실 버퍼는 보통 Custom Depth Pass와 함께 작동합니다.
- Custom Depth: 메인 장면의 깊이값(Scene Depth)과는 별도로, 특정 오브젝트들만 따로 렌더링해서 깊이(거리) 정보를 기록하는 버퍼입니다.
- 연결 고리: 커스텀 뎁스를 활성화하면 해당 오브젝트의 픽셀 위치에 **스텐실 값(CustomStencil Value)**을 함께 기록할 수 있습니다. 즉, 커스텀 뎁스가 "어디에 물체가 있는지"를 알려준다면, 스텐실 버퍼는 "그 물체가 어떤 종류(ID)인지"를 알려줍니다.
3. 설정 방법 (3단계)
1단계: 프로젝트 설정 활성화
스텐실 버퍼를 사용하려면 먼저 엔진에서 기능을 켜야 합니다.
- Project Settings (프로젝트 세팅)을 엽니다.
- Custom Depth-Stencil Pass를 검색합니다.
- 설정값을 Enabled with Stencil로 변경합니다. (이 설정을 해야 8비트 스텐실 데이터를 사용할 수 있습니다.)
2단계: 액터(Actor) 설정
효과를 적용하고 싶은 오브젝트(스태틱 메시 등)를 선택합니다.
- 디테일 패널에서 Rendering 섹션을 찾습니다.
- Render CustomDepth Pass 옵션을 체크합니다.
- CustomDepth Stencil Value에 원하는 숫자(예: 1, 2, 100 등)를 입력합니다.
3단계: 포스트 프로세스 머티리얼 작성
이제 머티리얼 에디터에서 이 값을 불러와 활용합니다.
- SceneTexture 노드를 생성합니다.
- Scene Texture Id를 CustomStencil로 설정합니다.
- 이 노드에서 나오는 값을 비교(If 노드 등)하여 특정 숫자일 때만 색상을 바꾸거나 효과를 줍니다.
4. 주요 활용 사례
이 기술은 게임 개발에서 매우 필수적입니다.
- 외곽선(Outline) 효과: * 특정 아이템에 마우스를 올렸을 때 테두리가 생기게 할 때 사용합니다. 스텐실 값이 있는 영역과 없는 영역의 경계선을 찾아 선을 그립니다.
- 투시(X-Ray) 효과:
- 캐릭터가 벽 뒤로 가려졌을 때 실루엣만 보이게 하고 싶을 때 사용합니다. Scene Depth(벽의 거리)보다 Custom Depth(캐릭터의 거리)가 클 때(즉, 가려졌을 때) 특정 색을 칠하도록 로직을 짭니다.
- 오브젝트별 개별 효과:
- 아이템 등급에 따라 (예: 일반=1, 전설=2) 스텐실 값을 다르게 부여하고, 포스트 프로세스에서 1번은 하얀색, 2번은 황금색 광원 효과를 줄 수 있습니다.
- 특정 구역 마스킹:
- 포털(Portal) 효과처럼 특정 창문을 통해서만 다른 세상이 보이게 할 때 스텐실 버퍼로 해당 창문 영역만 마스킹합니다.
요약
커스텀 뎁스는 물체를 '선별'하는 역할을 하고, 스텐실 버퍼는 선별된 물체에 '번호표'를 붙이는 역할을 합니다.
'이펙트 (FX) > 이펙트 팁 : Unreal' 카테고리의 다른 글
| [Unreal] 현재 시점으로 카메라 생성 (0) | 2023.10.16 |
|---|---|
| [Unreal/Material] 부드러운 윤곽선 포스트 프로세스 제작 (1) | 2023.10.10 |
| [Unreal/Material] 포스트프로세스 예외처리 (0) | 2023.10.10 |
| [Unreal/Niagara] 스켈레탈 메시 위치에 파티클 스폰 (0) | 2023.10.06 |
| [Unreal/Niagara] 텍스쳐 색상과 형태따라 파티클 스폰 (0) | 2023.10.05 |
댓글