Unity의 카메라 및 뎁스 텍스처 사용 가이드
이 문서는 Unity에서 카메라 및 뎁스 텍스처를 사용하는 방법에 대한 가이드를 제공합니다. 카메라가 뎁스 텍스처를 생성하는 방법과 다양한 응용 예제에 대해 설명합니다.
뎁스 텍스처란?
카메라는 뎁스 또는 뎁스+노멀 또는 모션 벡터 텍스처를 생성할 수 있습니다. 이는 포스트 프로세싱 효과에 사용하거나 커스텀 조명 모델을 구현하는 데 유용합니다.
- 뎁스 텍스처: 그래픽스 API에서 지원되며, 주요 요구 사항은 다음과 같습니다:
- Direct3D 11+(Windows)
- OpenGL 3+(Mac/Linux)
- OpenGL ES 3.0+(iOS)
- Metal(iOS)
카메라에서 뎁스 텍스처 모드 사용
Unity의 카메라에서 뎁스 텍스처 모드를 설정하려면 Camera.depthTextureMode 변수를 사용합니다. 다음은 가능한 세 가지 모드입니다:
| 모드 | 설명 |
|---|---|
| Depth | 뎁스 텍스처 |
| DepthNormals | 뎁스와 뷰 공간 노멀 텍스처 |
| MotionVectors | 현재 프레임에 대한 모션 벡터 텍스처 |
모드 설명
- Depth: 화면 크기의 뎁스 텍스처를 생성합니다.
- DepthNormals: 뷰 공간 노멀을 포함한 32비트 텍스처를 생성합니다.
- MotionVectors: 화면 공간에서 픽셀 모션을 인코딩한 텍스처를 생성합니다.
뎁스 텍스처 예제
- 셰이더에서 뎁스 텍스처 사용하기 셰이더에서
_CameraDepthTexture를 사용하여 카메라의 뎁스 텍스처를 샘플링할 수 있습니다. - 포스트 프로세싱 효과에서 활용하기 포스트 프로세싱에서 뎁스 정보를 사용하여 효과를 향상시킬 수 있습니다.
- 모션 추적을 위한 모션 벡터 사용하기 모션 벡터 텍스처를 사용하여 현실적인 모션 블러 효과를 구현할 수 있습니다.
사용 팁 및 트릭
- 카메라의 뎁스 텍스처가 필요한 경우, 효과가 비활성화된 이후에도 카메라가 계속 뎁스 텍스처를 렌더링할 수 있습니다.
- 복잡한 셰이더를 작성할 때는 플랫폼 간 차이를 염두에 두어야 합니다.
- 만약 텍스처에 결함이 발생하는 경우, Z 버퍼에 쓰지 않도록 주의해야 합니다. (
ZWrite Off사용)
결론
이 가이드는 Unity의 카메라 및 뎁스 텍스처에 대한 기본 개념과 사용 방법을 설명했습니다. 추가적으로 다양한 활용 방법을 통해 게임 개발 시 필요한 효과를 극대화할 수 있습니다.