日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

DirectX 视口学习

發布時間:2025/4/14 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectX 视口学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是viewport?


假設你站在一個密封的房子里,這個房子只有一個很小的窗口,你站在窗口前面,通過這個窗口你可以觀察到外面的世界,那么這個窗口就相當于一個視口,而外面的世界就是3D中的場景。
視口有以下幾個屬性,長度和寬度,為了確定窗口的位置,還需要一個左上角坐標。
為了支持Z-Buffer,還需要兩個深度值,分別是zMin, zMax,表示最小深度和最大深度。
這就是視口的定義。

在D3D中,視口用下面的結構體來表示,X和Y表示視口的左上角坐標,Width和Height表示窗口的寬度和高度,MinZ和MaxZ表示Z-buffer的最小值和最大值。

typedef struct D3DVIEWPORT9 {
? ? DWORD X;
? ? DWORD Y;
? ? DWORD Width;
? ? DWORD Height;
? ? float MinZ;
? ? float MaxZ;
} D3DVIEWPORT9, *LPD3DVIEWPORT9;

?

DirectX視口變換矩陣

視口變換在投影變換之后,視口變換的作用是將投影平面上的點轉換為屏幕上的點,這是一個縮放的過程。

投影變換的作用是將viewing frustum(視景體)中的場景投影到一個平面上,這個平面就是投影平面,在DirectX中,使用近剪裁平面作為投影平面(z=1),

視口變換則是將這個cuboid中的物體變換到視口中;

其中cuboid的坐標范圍是,

而viewport的坐標范圍是,

視口變換矩陣,


?

總結

以上是生活随笔為你收集整理的DirectX 视口学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。