연습: Direct3D 11에서 깊이 버퍼를 사용하여 섀도 볼륨 구현

이 연습에서는 모든 Direct3D 기능 수준의 디바이스에서 Direct3D 11을 사용하여 깊이 맵을 사용하여 섀도 볼륨을 렌더링하는 방법을 보여 줍니다.

항목 설명

깊이 버퍼 디바이스 리소스 만들기

섀도 볼륨에 대한 깊이 테스트를 지원하는 데 필요한 Direct3D 디바이스 리소스 생성 방법을 알아봅니다.

그림자 맵을 깊이 버퍼로 렌더링

조명의 관점에서 렌더링하여 섀도 볼륨을 나타내는 2차원 깊이 맵을 생성합니다.

깊이 테스트로 장면 렌더링

꼭짓점(또는 기하 도형) 셰이더 및 픽셀 셰이더에 깊이 테스트를 추가하여 섀도 효과를 생성합니다.

다양한 하드웨어에서 그림자 맵 지원

더 빠른 디바이스에서 충실도가 더 높은 섀도를 렌더링하고 덜 강력한 디바이스에서 더 빠른 섀도를 렌더링합니다.

 

Direct3D 9 데스크톱 포팅에 대한 섀도 매핑 애플리케이션

Windows 8에서는 기능 수준 9_1과 9_3에 깊이 비교 기능이 추가되었습니다. 이제 섀도 볼륨이 있는 렌더링 코드를 DirectX 11로 마이그레이션할 수 있으며 Direct3D 11 렌더러는 기능 수준 9 디바이스와 호환 가능합니다. 이 연습에서는 모든 Direct3D 11 앱 또는 게임이 깊이 테스트를 사용하여 기존 섀도 볼륨을 구현하는 방법을 보여 줍니다. 코드는 다음 프로세스를 다룹니다.

  1. 섀도 매핑용 Direct3D 디바이스 리소스 생성.
  2. 렌더링 패스를 추가하여 깊이 맵 생성.
  3. 기본 렌더링 패스에 깊이 테스트 추가.
  4. 필요한 셰이더 코드 구현.
  5. 다운레벨 하드웨어에서 빠른 렌더링을 위한 옵션.

이 연습을 완료하면 기능 수준 9_1 이상과 호환되는 Direct3D 11에서 호환되는 기본 섀도 볼륨 기술을 구현하는 방법에 익숙해지게 됩니다.

필수 조건

UWP(유니버설 Windows 플랫폼) DirectX 게임 개발을 위한 개발 환경을 준비해야 합니다. 템플릿은 아직 불필요하지만 이 연습에 대한 코드 샘플을 빌드하려면 Microsoft Visual Studio 2015가 필요합니다.

Direct3D

그림자 매핑 기술 문서