Fungsi D3DXMatrixPerspectiveFovLH (D3dx9math.h)
Catatan
Pustaka utilitas D3DX tidak digunakan lagi. Kami menyarankan agar Anda menggunakan DirectXMath sebagai gantinya.
Membangun matriks proyeksi perspektif sebelah kiri berdasarkan bidang tampilan.
Sintaks
D3DXMATRIX* D3DXMatrixPerspectiveFovLH(
_Inout_ D3DXMATRIX *pOut,
_In_ FLOAT fovy,
_In_ FLOAT Aspect,
_In_ FLOAT zn,
_In_ FLOAT zf
);
Parameter
-
pOut [masuk, keluar]
-
Jenis: D3DXMATRIX*
Arahkan ke struktur D3DXMATRIX yang merupakan hasil operasi.
-
fovy [in]
-
Jenis: FLOAT
Bidang pandang ke arah y, dalam radian.
-
Aspek [in]
-
Jenis: FLOAT
Rasio aspek, didefinisikan sebagai lebar ruang tampilan dibagi dengan tinggi.
-
zn [in]
-
Jenis: FLOAT
Nilai Z dari bidang tampilan dekat.
-
zf [in]
-
Jenis: FLOAT
Nilai Z dari bidang tampilan jauh.
Menampilkan nilai
Jenis: D3DXMATRIX*
Penunjuk ke struktur D3DXMATRIX yang merupakan matriks proyeksi perspektif sebelah kiri.
Keterangan
Nilai yang dikembalikan untuk fungsi ini adalah nilai yang sama yang dikembalikan dalam parameter pOut . Dengan cara ini, fungsi D3DXMatrixPerspectiveFovLH dapat digunakan sebagai parameter untuk fungsi lain.
Untuk mengubah sumbu rasio aspek, gunakan rumus perhitungan: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspek). Atau, tambahkan variabel rasio aspek X dan Y dalam struktur untuk menskalakan ruang tampilan vertikal: fovy = 2 * math.atan(math.tan(fovy * 0,5) / aspekY), aspek = aspekX * aspek Y.
Fungsi ini menghitung matriks yang dikembalikan seperti yang ditunjukkan:
xScale 0 0 0
0 yScale 0 0
0 0 zf/(zf-zn) 1
0 0 -zn*zf/(zf-zn) 0
where:
yScale = cot(fovY/2)
xScale = yScale / aspect ratio
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk