頂點坐標(biāo)變換(7) 摘要:
為了讓物體運動起來,需要不斷改變相應(yīng)的世界矩陣,而投影矩陣和觀察矩陣通常不變,特別是投影矩陣在設(shè)置好之后基本上不需要重新設(shè)置。
在默認(rèn)情況下,對于窗口顯示模式的應(yīng)用程序,視口的大小就是當(dāng)前窗口的客戶區(qū)的大小,對于全屏模式的應(yīng)用程序,視口的大小就是屏幕的分辨率。除非特殊需要,絕大多數(shù)程序都采用這一默認(rèn)設(shè)置,所以在以后的示例程序中都將略過視口設(shè)置,而采用其默認(rèn)設(shè)置。
頂點坐標(biāo)變換(6) 摘要:
視區(qū)(視口)變換是Direct3D頂點變換流水線的最后一步,它通過定義視區(qū)信息(屏幕顯示區(qū)域的實際寬和高等參數(shù)),完成頂點裁剪以及將頂點坐標(biāo)從投影坐標(biāo)變換為最終顯示的以像素為單位的屏幕坐標(biāo)等操作。裁剪過程保證不渲染完全在觀察平截面以外的對象,還確保對于與觀察平截面相交的對象,可以如下方式進(jìn)行渲染:即在視口指定范圍以外的部分不繪制像素。
頂點坐標(biāo)變換(5) 摘要:
將攝影空間中的三維物體投影到二維膠片上,也就是Direct3D中的屏幕,這種三維到二維的變換過程就是投影變換,即從取景空間到攝影空間的變換。設(shè)三維物體在觀察空間中的坐標(biāo)為Pview,投影矩陣為Mproj,則頂點在投影空間中的坐標(biāo)為:
Pproj = Pview * Mproj
頂點坐標(biāo)變換(4) 摘要:
取景變換(也稱觀察變換)是在世界空間下架設(shè)一個攝像機(jī),把各個頂點坐標(biāo)從世界空間變換到攝影空間(觀察空間)。在攝影空間里,攝像機(jī)或者說觀察點位于原點,向著z軸正方向。因為Direct3D采用左手坐標(biāo)系,所以z軸正方向指向屏幕里面。設(shè)三維頂點在世界坐標(biāo)系的坐標(biāo)為Pworld,在攝影空間內(nèi)的坐標(biāo)為Pview,則:
Pview = Pworld * Mview
頂點坐標(biāo)變換(3) 摘要:
世界變換就是將物體頂點坐標(biāo)從模型空間轉(zhuǎn)換到世界空間。在模型空間里,頂點位置坐標(biāo)依據(jù)模型的本地坐標(biāo)系的原點而定,在世界空間里,所有模型的頂點共用一個原點,即世界坐標(biāo)系原點。事實上,世界變換就是將一個模型從本地空間重新定位到世界空間內(nèi)。從模型空間到世界空間的轉(zhuǎn)換實際上就是對模型進(jìn)行平移、旋轉(zhuǎn)、縮放以及它們的任意組合變換。
頂點坐標(biāo)變換(2) 摘要:
在Direct3D中,頂點坐標(biāo)變換通常是借助于矩陣實現(xiàn)的,因此下面首先介紹在Direct3D中提供的各種矩陣類型和相關(guān)的矩陣運算函數(shù)。
頂點坐標(biāo)變換(1) 摘要:
空間中的物體需要使用三維坐標(biāo)來描述,而顯示器是一個二維的表面,所以在屏幕上渲染一個三維場景時,首先需要將描述空間物體的三維坐標(biāo)變換為二維坐標(biāo)(世界坐標(biāo)到屏幕坐標(biāo)),這在Direct3D中稱為頂點坐標(biāo)變換。頂點坐標(biāo)變換通常通過矩陣來完成。可以把頂點坐標(biāo)變換想象成攝像過程,三維世界的景物通過攝像機(jī)的拍攝顯示在二維的相片上,所不同的是把相片換成了屏幕。