• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當自強而不息

            光照與材質(zhì)(1)

            在三維圖形程序中使用光照效果能夠有效地增強場景的真實感。在Direct3D中,通過計算場景中的光線和物體表面材質(zhì)反射光線顏色的數(shù)學交互,可使光線模型接近于真實世界的照明系統(tǒng)。

             

            光照計算模型

            在真實世界中,光線在到達眼睛之前經(jīng)過了物體表面的多次反射,每次反射時,物體表面都會吸收一些光,有些被隨機反射擴散出去,其余的到達下一個物體的表面或眼睛。真實世界中光線反射的效果就是光線跟蹤算法需要模擬實現(xiàn)的。盡管光線跟蹤算法能夠創(chuàng)建非常逼真的與自然界中觀察到極為相似的景象,但是還沒有實時程序能夠完成這些運算。考慮到實時渲染的需要,Direct3D使用更簡單的方法進行光照計算。Direct3D光照計算模型包括4種:環(huán)境光、漫反射光、鏡面反射光和自發(fā)光。它們的結(jié)合能靈活高效地解決三維圖形程序中的光照問題。

             

            1、環(huán)境光

            一個物體即使沒有直接被光源照射,但只要有光線通過其他物體的折射、反射到達該物體,它也能被看見。在基本光照模型中,可以在一個場景中設置一個基準光亮度,可簡單地模擬一種從不同物體表面所產(chǎn)生的反射光的統(tǒng)一照明,稱為環(huán)境光(ambient light)或背景光。環(huán)境光沒有位置或方向上的特征,只有一個顏色亮度值,而且不會衰減,所以在所有方向和所有物體表面上投射的環(huán)境光的數(shù)量是恒定不變的。

            在Direct3D中可以通過設置渲染狀態(tài)為整個場景添加環(huán)境光。方法很簡單,具體的代碼如下:

            g_device->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_X#404040);

             

            2、漫反射

            漫反射在現(xiàn)實生活中最為普遍,太陽的直射、日光燈的照射都可以用漫反射光照模型來近似。不同于環(huán)境光,漫反射光的空間位置和方向?qū)ξ矬w的照明有很大的影響。圖形系統(tǒng)中物體表面頂點P的漫反射顏色值Idiffuse的計算公式為:

            Idiffuse = k * Ilight * cosθ

            其中k為物體表面材質(zhì)的反射系數(shù),Ilight為燈光顏色,θ為物體表面頂點指向光源位置的方向向量L和頂點法線N之間的夾角。如果L和N為單位向量,由幾何知識可知,cosθ等于L和N的點積,所以Idiffuse的計算公式可變?yōu)椋?/p>

            Idifffuse = k * Ilight * (L . N)

            在Direct3D圖形系統(tǒng)中,物體表面頂點處的漫反射顏色值就是利用上式計算的,需要說明的是,在Direct3D中顏色值是由紅、綠、藍三個顏色分量表示,在具體計算時也是按照三個分量分別計算。

             

            3、鏡面反射

            當觀察金屬物品或玻璃制品的表面時,改變觀察點的位置,可以發(fā)現(xiàn)玻璃杯表面的亮度也在發(fā)生變化,這種現(xiàn)象往往發(fā)生在光滑物體表面,稱之為鏡面反射。物體表面頂點的鏡面反射顏色值的計算方法由下圖所示:

            設物體表面頂點指向觀察點的單位向量為V,反射光線為R,R和V之間的夾角為θ,頂點P的鏡面反射顏色值可由下式近似計算:

            Ispecular = Ks * Ilight * (cosθ)n  = Ks * Ilight * (V . R)n  

            其中,Ks和n為物體表面材質(zhì)的鏡面反射系數(shù)。

            從上面的計算公式中不難看出,鏡面反射的計算量比較大,因此在默認狀態(tài)下,Direct3D不對物體進行鏡面反射計算,如果要激活Direct3D鏡面反射光照計算,需要設置相關(guān)的渲染狀態(tài),代碼如下:

            g_device->SetRenderState(D3DRS_SPECULARENABLE, TRUE);

             

            4、自發(fā)光

            自發(fā)光是指對象自己發(fā)出的光。自發(fā)光其實就是通過對象的自發(fā)光材質(zhì)實現(xiàn)的。用結(jié)構(gòu)D3DMATERIAL9的成員Emissive描述自發(fā)光的顏色和透明度。自發(fā)光可以影響一個對象的顏色,例如通過設置灰暗材質(zhì)的自發(fā)光顏色屬性可以使其變得明亮一點。可以使用材質(zhì)的自發(fā)光屬性實現(xiàn)發(fā)光的對象,而不用在場景內(nèi)添加燈光,從而縮小了計算量。例如,可以通過具有藍色自發(fā)光屬性的材質(zhì)實現(xiàn)一塊藍色水晶,而不在場景內(nèi)添加其他燈光。

            用自發(fā)光屬性創(chuàng)建的材質(zhì)并不發(fā)射出能被場景內(nèi)其他對象反射的光,也就是說,它發(fā)出的光不參與光運算。為了實現(xiàn)反射光,必須在場景內(nèi)添加額外的燈光。

             

            5、對光照計算模型的說明

            環(huán)境光所實現(xiàn)的實際上是一個定值,沒有方向?qū)傩裕运刮矬w對象的所有像素都呈現(xiàn)同樣的顏色。它能很快完成計算,但這時的物體看上去不真實。

            漫反射由光的方向和物體表面的法向量決定。如果改變了光的方向或者物體表面的法向量,物體表面的漫反射值就發(fā)生變化。因為每個物體頂點都不相同,所以它的計算時間會較長,使用這種光照計算模型的優(yōu)點在于用它渲染物體時能夠體現(xiàn)出物體的三維深度。

            鏡面反射發(fā)生在光滑物體表面,它比漫反射光更強烈并沿著對象表面迅速衰減,它的計算時間比漫反射更長,但優(yōu)點在于它為表面添加了重要的細節(jié)。

            現(xiàn)實中的光照效果可以通過這些光照類型進行近似模擬。通過選擇合適的光照計算模型,能使最終顯示的圖形具有逼近真實世界景物的真實感,同時保持圖形程序的執(zhí)行效率。在圖形程序中對物體頂點進行光照計算時,具體采用哪種或哪幾種光照計算模型,是由物體表面材質(zhì)決定的。這也和實際情況比較吻合,如果物體表面粗糙,則當光線照射到物體上時,發(fā)生漫反射;如果物體表面很光滑,光線照射到物體上時將發(fā)生鏡面反射。

            環(huán)境光、自發(fā)光、漫反射光的計算結(jié)果作為頂點的漫反射顏色輸出,鏡面反射光的計算結(jié)果作為頂點的鏡面反射光顏色輸出。


            posted on 2008-05-03 17:31 lovedday 閱讀(1862) 評論(0)  編輯 收藏 引用

            公告

            導航

            統(tǒng)計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評論

            欧美亚洲色综久久精品国产| 久久亚洲精品无码观看不卡| 韩国无遮挡三级久久| 国产成人精品久久亚洲高清不卡| 日韩va亚洲va欧美va久久| 2020国产成人久久精品| 久久精品国产91久久综合麻豆自制 | 久久久久人妻一区精品| 丰满少妇人妻久久久久久| 国产成人无码精品久久久久免费| 久久亚洲2019中文字幕| 久久99精品久久久久久动态图| 久久久久香蕉视频| 亚洲一本综合久久| 久久久婷婷五月亚洲97号色| 久久久久亚洲AV成人网人人软件| 精品免费久久久久久久| 性做久久久久久久久浪潮| 香港aa三级久久三级| 久久婷婷五月综合97色| 久久人妻少妇嫩草AV蜜桃| 国产成人久久精品二区三区| 久久丫精品国产亚洲av不卡| 国产精品久久久久a影院| 国产免费久久精品99久久| 国产一级做a爰片久久毛片| 久久精品无码午夜福利理论片| 日本久久中文字幕| 久久久久亚洲av成人无码电影| 久久99精品综合国产首页| 久久国产精品一国产精品金尊| 亚洲中文字幕无码久久2017| 亚洲七七久久精品中文国产| 欧美粉嫩小泬久久久久久久 | 日韩va亚洲va欧美va久久| 久久久精品人妻无码专区不卡| 久久综合综合久久97色| 99久久伊人精品综合观看| 国产成人精品久久综合| 国产真实乱对白精彩久久| 国产精品成人99久久久久91gav|