DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 뷰포트와 클리핑 뷰포트 직사각형   [목차열람] [주소복사] [슬롯비우기]
뷰포트 직사각형
 
Microsoft DirectX 9.0

뷰포트 직사각형


C++ 의 뷰포트 직사각형은,D3DVIEWPORT9 구조체를 사용해 정의한다. D3DVIEWPORT9 구조체는,IDirect3DDevice9 인터페이스가 공개하는 다음의 뷰포트 조작 메서드를 사용한다.

D3DVIEWPORT9 구조체에는 X,Y,Width,Height 의 4 개의 멤버가 있다. 이것들을 사용해, 장면(scene)가 렌더링 되는 렌더링 타겟 표면 영역을 정의한다. 이러한 값은, 다음 그림이 나타내듯 목적지의 직사각형, 즉 뷰포트 직사각형에 대응한다.

뷰포트 직사각형

D3DVIEWPORT9 구조체의 X,Y,Width,Height 멤버로 지정하는 값은, 렌더링 타겟 표면의 맨 왼쪽 위쪽으로부터의 화면 좌표이다. 이 구조체는, 장면(scene)가 렌더링 되는 깊이 범위를 나타내는 2 개의 추가 멤버 MinZMaxZ 를 정의한다.

Microsoft® Direct3D® 에서는, 뷰포트의 클리핑 볼륨의 범위는, X 방향에 대해서는 -1. 0 ~ 1.0, Y 방향에 대해서는 1.0 ~ -1. 0 으로 상정하고 있다. 이 값은, 과거의 애플리케이션으로 가장 자주(잘) 사용된 설정값이다. 투영 변환때, 클리핑을 실시하기 전에 뷰포트의 어스펙트비(가로세로 비율)을 조정할 수 있다. 이 태스크에 대해서는, 「투영 변환」으로 설명하고 있다.

  D3DVIEWPORT9 구조체의 MinZMaxZ 멤버는, 장면(scene)가 렌더링 되는 깊이 범위를 나타내, 클리핑에는 사용되지 않는다. 대부분의 애플리케이션에서는, 이 멤버를 0.0 으로 1.0 으로 설정해, 깊이 버퍼내의 깊이값의 전범위에 렌더링 하고 있다. 경우에 따라서는, 다른 깊이 범위를 사용해 특수 효과를 얻을 수도 있다. 예를 들어, 게임의 헤드 업 디스플레이를 렌더링 하는 경우, 양쪽 모두의 값을 0.0 으로 설정해 foreground의 장면(scene)내의 개체를 강제적으로 렌더링 하거나 양쪽 모두의 값을 1.0 으로 설정해 항상 백그라운드에 존재할 필요가 있는 개체를 렌더링 할 수 있다.


© 2002 Microsoft Corporation. All rights reserved.
↑TOP