연습: Direct3D 11에서 깊이 버퍼를 사용 하 여 섀도 볼륨 구현Walkthrough: Implement shadow volumes using depth buffers in Direct3D 11

이 연습에서는 모든 Direct3D 기능 수준의 장치에서 Direct3D 11을 사용 하 여 깊이 맵을 사용 하 여 섀도 볼륨을 렌더링 하는 방법을 보여 줍니다.This walkthrough demonstrates how to render shadow volumes using depth maps, using Direct3D 11 on devices of all Direct3D feature levels.

항목Topic DescriptionDescription

깊이 버퍼 장치 리소스 만들기Create depth buffer device resources

섀도 볼륨의 깊이 테스트를 지 원하는 데 필요한 Direct3D 장치 리소스를 만드는 방법에 대해 알아봅니다.Learn how to create the Direct3D device resources necessary to support depth testing for shadow volumes.

그림자 맵을 깊이 버퍼로 렌더링 합니다.Render the shadow map to the depth buffer

광원의 관점에서 렌더링 하 여 그림자 볼륨을 나타내는 2 차원 깊이 지도를 만듭니다.Render from the point of view of the light to create a two-dimensional depth map representing the shadow volume.

깊이 테스트를 사용 하 여 장면 렌더링Render the scene with depth testing

꼭 짓 점 (또는 기 하 도형) 셰이더 및 픽셀 셰이더에 깊이 테스트를 추가 하 여 그림자 효과를 만듭니다.Create a shadow effect by adding depth testing to your vertex (or geometry) shader and your pixel shader.

하드웨어 범위에서 섀도 맵 지원Support shadow maps on a range of hardware

더 빠른 장치에서 더 높은 성능의 그림자를 렌더링 하 고, 더 낮은 수준의 장치에서 더 빠른 그림자를 렌더링 합니다.Render higher-fidelity shadows on faster devices and faster shadows on less powerful devices.

 

Direct3D 9 desktop 포팅에 응용 프로그램 섀도 매핑Shadow mapping application to Direct3D 9 desktop porting

기능 수준 9 _ 1 및 9 3에 대 한 Windows 8 adde d 깊이 비교 기능 _ .Windows 8 adde d depth comparison functionality to feature level 9_1 and 9_3. 이제 섀도 볼륨이 있는 렌더링 코드를 DirectX 11로 마이그레이션할 수 있으며, Direct3D 11 렌더러는 기능 수준 9 장치와 호환 됩니다.Now you can migrate rendering code with shadow volumes to DirectX 11, and the Direct3D 11 renderer will be downlevel compatible with feature level 9 devices. 이 연습에서는 심층적 테스트를 사용 하 여 Direct3D 11 앱 또는 게임에서 기존 섀도 볼륨을 구현 하는 방법을 보여 줍니다.This walkthrough shows how any Direct3D 11 app or game can implement traditional shadow volumes using depth testing. 코드는 다음 프로세스를 포함 합니다.The code covers the following process:

  1. 섀도 매핑을 위한 Direct3D 장치 리소스를 만드는 중입니다.Creating Direct3D device resources for shadow mapping.
  2. 렌더링 패스를 추가 하 여 깊이 맵 만들기Adding a rendering pass to create the depth map.
  3. 주 렌더링 패스에 깊이 테스트를 추가 합니다.Adding depth testing to the main rendering pass.
  4. 필요한 셰이더 코드를 구현 합니다.Implementing the necessary shader code.
  5. 하위 하드웨어에서 빠른 렌더링을 위한 옵션입니다.Options for fast rendering on downlevel hardware.

이 연습을 완료 한 후에는 기능 수준 9 1 이상과 호환 되는 Direct3D 11에서 기본적인 호환 가능한 섀도 볼륨 기술을 구현 하는 방법에 대해 잘 알고 있어야 합니다 _ .Upon completing this walkthrough, you should be familiar with how to implement a basic compatible shadow volume technique in Direct3D 11 that's compatible with feature level 9_1 and above.

필수 구성 요소Prerequisites

UWP (유니버설 Windows 플랫폼) DirectX 게임 개발을 위한 개발 환경을 준비해야 합니다.You should Prepare your dev environment for Universal Windows Platform (UWP) DirectX game development. 아직 템플릿이 필요 하지 않지만이 연습에 대 한 코드 샘플을 빌드하려면 Microsoft Visual Studio 2015이 필요 합니다.You don't need a template yet, but you'll need Microsoft Visual Studio 2015 to build the code sample for this walkthrough.

Direct3DDirect3D

섀도 매핑 기술 문서Shadow mapping technical articles