DirectX Graphics 프로그래밍 가이드 튜토리얼, 샘플, 툴, 힌트 샘플 Billboard 샘플 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
Billboard 샘플에서는, 빌보딩의 기법을 나타내고 있다. 다각형수가 많은 나무의 모델 등, 복잡한 3D 모델을 렌더링 하는 대신에, 모델의 2D 이미지를 렌더링 해, 항상 시점에 향하도록 회전시킨다. 이 기법은, 나무·구름·연기·폭발등을 렌더링 하기 위해서, 일반적으로 사용된다. 더 자세한 정보는, 「빌보딩」을 참조할것.
이 샘플에서는, 카메라는 나무으로 덮인 언덕의 3D 장면을 비행한다. 나무는 3D 개체와 같이 보이지만, 실제로는, 시점으로 향해 회전하는 2D 빌보드 이미지이다. 언덕의 지형 및 특별 관람석 (하늘 텍스처를 포함한 입방체)은,. x 파일로부터 로드 되는 개체이다. 이것은 시각 효과를 위해서 사용되어 빌보딩 기법과는 무관하다.
소스 파일 : (SDK 루트) \Samples\C++\Direct3D\Billboard
실행 가능 파일 : (SDK 루트) \Samples\C++\Direct3D\Bin
다음의 표는 , 처리 되고 있는 키를 나타내고 있다. 메뉴 커멘드를 사용해 같은 조작을 실시할 수가 있다.
키 | 동작 |
---|---|
Enter | 장면을 시작 및 정지한다. |
Space 키 | 장면을 조금씩 진행한다. |
F2 | 새로운 렌더링 장치 또는 디스플레이 모드를 선택하도록(듯이) 사용자에 지시한다. |
Alt+Enter | 풀 스크린 모드와 윈도우 모드를 바꾼다. |
Esc | 애플리케이션을 종료한다. |
이 샘플에서는, 빌보딩 기법에 중점을 두고 있다. 카메라는 각 프레임으로 이동해, 거기에 따라서 시점도 변화한다. 시점이 변화 하면, 빌보드가 새로운 시점의 분을 향하도록(듯이), y 축으로 따라 빌보드를 회전시키는 회전 행렬이 생성된다. 빌보드 행렬의 계산은 FrameMove 함수로 행해진다. 빌보드에는 보통 투명한 픽셀이 포함되어 있으므로, 적절한 알파 혼합을 실시하기 위해서, 나무도 이 함수에 저장 된다. 나무은,DrawTrees 함수로 정점 버퍼로부터 렌더링 된다.
이 샘플의 빌보드는, y 축으로 따라서만 회전하도록 제한되고 있다. 이와 같이 하지 않으면 나무의 간이 지면에 고정되지 않은 것 처럼 보인다. 3D 항공 시뮬레이션 게임이나 스페이스 슈팅 게임의 폭발등의 효과에서는, 빌보드는 보통 1 개의 축으로 제약되지 않는다.
이 샘플에서는, 헬퍼-함수등의 프로그래밍 요소로부터 구성되는 공통의 Microsoft® DirectX® 코드를 사용하고 있다. 이 코드는 DirectX 소프트웨어 개발 킷 (SDK) 외 샘플과 공유되고 있다. 샘플 프레임워크(framework)의 헤더는 (SDK 루트)\Samples\C++\Common\Include, 소스 코드는 (SDK 루트) \Samples\C++\Common\Src 에 있다.