D3DXMatrixPerspectiveFovRH 함수(D3dx9math.h)
참고
D3DX 유틸리티 라이브러리는 더 이상 사용되지 않습니다. 대신 DirectXMath 를 사용하는 것이 좋습니다.
보기의 필드를 기준으로 오른손 원근 투영 행렬을 작성합니다.
구문
D3DXMATRIX* D3DXMatrixPerspectiveFovRH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
매개 변수
-
pOut [in, out]
-
형식: D3DXMATRIX*
작업의 결과인 D3DXMATRIX 구조체에 대한 포인터입니다.
-
fovy [in]
-
형식: FLOAT
y 방향의 보기 필드(라디안)입니다.
-
측면 [in]
-
형식: FLOAT
가로 세로 비율- 뷰 공간 너비를 높이로 나눈 값으로 정의됩니다.
-
zn [in]
-
형식: FLOAT
가까운 뷰 평면의 Z-값입니다.
-
zf [in]
-
형식: FLOAT
원거리 뷰 평면의 Z-값입니다.
반환 값
형식: D3DXMATRIX*
오른손 원근 투영 행렬인 D3DXMATRIX 구조체에 대한 포인터입니다.
설명
이 함수의 반환 값은 pOut 매개 변수에 반환된 값과 동일합니다. 이러한 방식으로 D3DXMatrixPerspectiveFovRH 함수를 다른 함수의 매개 변수로 사용할 수 있습니다.
가로 세로 비율 축을 변경하려면 계산 수식을 사용합니다. fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspect). 또는 구조체에 X 및 Y 가로 세로 비율 변수를 추가하여 세로 뷰 공간의 크기를 조정합니다. fovy = 2 * math.atan(math.tan(fovy * 0.5) / aspectY), aspect = aspectX * aspect Y.
이 함수는 표시된 대로 반환된 행렬을 계산합니다.
xScale 0 0 0
0 yScale 0 0
0 0 zf/(zn-zf) -1
0 0 zn*zf/(zn-zf) 0
where:
yScale = cot(fovY/2)
xScale = yScale / aspect ratio
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보