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

뷰포트의 스케일링


뷰포트용의 D3DVIEWPORT9 구조체의 X,Y,Width,Height 멤버에 위치와 사이즈를 지정해, 렌더링 타겟 표면의 뷰포트의 위치와 크기를 정의한다. 이러한 값은, 렌더링 타겟 표면의 맨 왼쪽 위쪽으로부터의 화면 좌표이다.

Microsoft® Direct3D® 에서는, 뷰포트의 위치와 사이즈를 사용해 정점을 스케일링 해, 렌더링 하는 장면(scene)를 타겟 표면 위에의 적절한 위치에 배치한다. 내부적으로는, Direct3D 는, 각 정점에 적용하는 행렬에 이러한 값을 삽입하고 있다.

행렬

이 행렬은, 뷰포트의 사이즈 및 지정의 깊이 범위에 따라 정점을 스케일링 해, 그 정점을 렌더링 타겟 표면의 적절한 위치에 평행이동 한다. 또, 이 행렬은, y 가 하부에 증가하는 맨 왼쪽 위쪽의 스크린 원점을 반영하기 위해서 y 좌표를 반전한다. 이 행렬을 적용한 후도, 정점은 동차이다. 즉, 정점은 여전히 [x, y, z, w] 정점으로서 존재하므로, 래스터라이저에 보내기 전에 정점을 비동차에 변환 해야 한다.

  뷰포트 스케일링 행렬은, 정점을 스케일링 하는 D3DVIEWPORT9 구조체의 MinZMaxZ 멤버를 짜넣어 깊이 범위 [MinZ, MaxZ] 를 맞춘다. 이것은, 이러한 멤버가 클리핑에 사용되고 있던 구릴리스의 Microsoft DirectX® 의 의미들과는 다르다.
  더 자세한 정보는, 「뷰포트 직사각형」 및 「클리핑 볼륨」을 참조할것. 애플리케이션에서는, 보통,MinZMaxZ 를 각각 0.0 및 1.0 으로 설정해 깊이 범위 전체에의 렌더링을 실행한다. 다만, 다른 값을 설정해 어떠한 이펙트를 얻을 수도 있다. 양쪽 모두의 값을 0.0 으로 설정해 모든 개체를 강제적으로 foreground에 렌더링 하거나 양쪽 모두의 값을 1.0 으로 설정해 모든 개체를 백그라운드에 렌더링 하거나 할 수 있다.


© 2002 Microsoft Corporation. All rights reserved.
↑TOP