摘要: 在Direct3D的一個(gè)場(chǎng)景中,最多可設(shè)置8個(gè)光源,設(shè)置光源由IDirect3DDevice9::SetLight()函數(shù)完成。
函數(shù)IDirect3DDevice9::SetLight()只是設(shè)置光源,在默認(rèn)情況下,設(shè)置的任何光源都還不起作用,具體使用哪些光源,由函數(shù)IDirect3DDevice9::LightEnable()確定。 閱讀全文

越過道德的邊境
我們走過愛的禁區(qū)
享受幸福的錯(cuò)覺
誤解了快樂的意義
是誰太勇敢說喜歡離別
只要今天不要明天眼睜睜看著
愛從指縫中溜走還說再見
不夠時(shí)間好好來愛你
早該停止風(fēng)流的游戲
----------------------------------------------------------
廣島之戀給我的感悟:色即空,空即色。
畢竟愛和性是兩回事。
摘要: 光照計(jì)算模型說明圖形系統(tǒng)以什么樣的方法計(jì)算燈光照射在物體上的顏色值,它是一種計(jì)算方法,而不是具體的燈光。光源則定義了三維場(chǎng)景中具體的燈光,包括位置、方向、強(qiáng)度等信息。相同的光源可以根據(jù)物體表面材質(zhì)的不同,通過不同的光照模型顯示。比如,在臥室中的一盞臺(tái)燈,照射在布質(zhì)床單上時(shí),應(yīng)使用漫反射模型;而照射在玻璃表面的桌子上時(shí),則應(yīng)使用鏡面反射模型計(jì)算光照效果。 閱讀全文
摘要: 在三維圖形程序中使用光照效果能夠有效地增強(qiáng)場(chǎng)景的真實(shí)感。在Direct3D中,通過計(jì)算場(chǎng)景中的光線和物體表面材質(zhì)反射光線顏色的數(shù)學(xué)交互,可使光線模型接近于真實(shí)世界的照明系統(tǒng)。
在真實(shí)世界中,光線在到達(dá)眼睛之前經(jīng)過了物體表面的多次反射,每次反射時(shí),物體表面都會(huì)吸收一些光,有些被隨機(jī)反射擴(kuò)散出去,其余的到達(dá)下一個(gè)物體的表面或眼睛。真實(shí)世界中光線反射的效果就是光線跟蹤算法需要模擬實(shí)現(xiàn)的。盡管光線跟蹤算法能夠創(chuàng)建非常逼真的與自然界中觀察到極為相似的景象,但是還沒有實(shí)時(shí)程序能夠完成這些運(yùn)算??紤]到實(shí)時(shí)渲染的需要,Direct3D使用更簡(jiǎn)單的方法進(jìn)行光照計(jì)算。Direct3D光照計(jì)算模型包括4種:環(huán)境光、漫反射光、鏡面反射光和自發(fā)光。它們的結(jié)合能靈活高效地解決三維圖形程序中的光照問題。 閱讀全文
在真實(shí)世界中,光線在到達(dá)眼睛之前經(jīng)過了物體表面的多次反射,每次反射時(shí),物體表面都會(huì)吸收一些光,有些被隨機(jī)反射擴(kuò)散出去,其余的到達(dá)下一個(gè)物體的表面或眼睛。真實(shí)世界中光線反射的效果就是光線跟蹤算法需要模擬實(shí)現(xiàn)的。盡管光線跟蹤算法能夠創(chuàng)建非常逼真的與自然界中觀察到極為相似的景象,但是還沒有實(shí)時(shí)程序能夠完成這些運(yùn)算??紤]到實(shí)時(shí)渲染的需要,Direct3D使用更簡(jiǎn)單的方法進(jìn)行光照計(jì)算。Direct3D光照計(jì)算模型包括4種:環(huán)境光、漫反射光、鏡面反射光和自發(fā)光。它們的結(jié)合能靈活高效地解決三維圖形程序中的光照問題。 閱讀全文
摘要: 空間中的物體需要使用三維坐標(biāo)來描述,而顯示器是一個(gè)二維的表面,所以在屏幕上渲染一個(gè)三維場(chǎng)景時(shí),首先需要將描述空間物體的三維坐標(biāo)變換為二維坐標(biāo)(世界坐標(biāo)到屏幕坐標(biāo)),這在Direct3D中稱為頂點(diǎn)坐標(biāo)變換。頂點(diǎn)坐標(biāo)變換通常通過矩陣來完成??梢园秧旤c(diǎn)坐標(biāo)變換想象成攝像過程,三維世界的景物通過攝像機(jī)的拍攝顯示在二維的相片上,所不同的是把相片換成了屏幕。 閱讀全文
摘要: 為了讓物體運(yùn)動(dòng)起來,需要不斷改變相應(yīng)的世界矩陣,而投影矩陣和觀察矩陣通常不變,特別是投影矩陣在設(shè)置好之后基本上不需要重新設(shè)置。
在默認(rèn)情況下,對(duì)于窗口顯示模式的應(yīng)用程序,視口的大小就是當(dāng)前窗口的客戶區(qū)的大小,對(duì)于全屏模式的應(yīng)用程序,視口的大小就是屏幕的分辨率。除非特殊需要,絕大多數(shù)程序都采用這一默認(rèn)設(shè)置,所以在以后的示例程序中都將略過視口設(shè)置,而采用其默認(rèn)設(shè)置。 閱讀全文
在默認(rèn)情況下,對(duì)于窗口顯示模式的應(yīng)用程序,視口的大小就是當(dāng)前窗口的客戶區(qū)的大小,對(duì)于全屏模式的應(yīng)用程序,視口的大小就是屏幕的分辨率。除非特殊需要,絕大多數(shù)程序都采用這一默認(rèn)設(shè)置,所以在以后的示例程序中都將略過視口設(shè)置,而采用其默認(rèn)設(shè)置。 閱讀全文
摘要: 視區(qū)(視口)變換是Direct3D頂點(diǎn)變換流水線的最后一步,它通過定義視區(qū)信息(屏幕顯示區(qū)域的實(shí)際寬和高等參數(shù)),完成頂點(diǎn)裁剪以及將頂點(diǎn)坐標(biāo)從投影坐標(biāo)變換為最終顯示的以像素為單位的屏幕坐標(biāo)等操作。裁剪過程保證不渲染完全在觀察平截面以外的對(duì)象,還確保對(duì)于與觀察平截面相交的對(duì)象,可以如下方式進(jìn)行渲染:即在視口指定范圍以外的部分不繪制像素。 閱讀全文
摘要: 將攝影空間中的三維物體投影到二維膠片上,也就是Direct3D中的屏幕,這種三維到二維的變換過程就是投影變換,即從取景空間到攝影空間的變換。設(shè)三維物體在觀察空間中的坐標(biāo)為Pview,投影矩陣為Mproj,則頂點(diǎn)在投影空間中的坐標(biāo)為:
Pproj = Pview * Mproj 閱讀全文
Pproj = Pview * Mproj 閱讀全文
摘要: 取景變換(也稱觀察變換)是在世界空間下架設(shè)一個(gè)攝像機(jī),把各個(gè)頂點(diǎn)坐標(biāo)從世界空間變換到攝影空間(觀察空間)。在攝影空間里,攝像機(jī)或者說觀察點(diǎn)位于原點(diǎn),向著z軸正方向。因?yàn)镈irect3D采用左手坐標(biāo)系,所以z軸正方向指向屏幕里面。設(shè)三維頂點(diǎn)在世界坐標(biāo)系的坐標(biāo)為Pworld,在攝影空間內(nèi)的坐標(biāo)為Pview,則:
Pview = Pworld * Mview 閱讀全文
Pview = Pworld * Mview 閱讀全文
摘要: 世界變換就是將物體頂點(diǎn)坐標(biāo)從模型空間轉(zhuǎn)換到世界空間。在模型空間里,頂點(diǎn)位置坐標(biāo)依據(jù)模型的本地坐標(biāo)系的原點(diǎn)而定,在世界空間里,所有模型的頂點(diǎn)共用一個(gè)原點(diǎn),即世界坐標(biāo)系原點(diǎn)。事實(shí)上,世界變換就是將一個(gè)模型從本地空間重新定位到世界空間內(nèi)。從模型空間到世界空間的轉(zhuǎn)換實(shí)際上就是對(duì)模型進(jìn)行平移、旋轉(zhuǎn)、縮放以及它們的任意組合變換。 閱讀全文