• <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>

            麒麟子

            ~~

            導(dǎo)航

            <2009年2月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            1234567

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類(lèi)

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            為DEMO加入霧化效果

            霧化效果

            首先來(lái)看看我們可以設(shè)置哪些參數(shù)
            1、D3DFOGSTART、D3DFOGEND表示霧的起始和結(jié)束距離
            2、D3DFOGDENSITY 霧的濃度
            3、D3DFOGCOLOR 霧的顏色
            4、D3DFOGTABLEMODE、D3DFOGVERTEXMODE 霧的模式,第一個(gè)為像素霧化,第二個(gè)為頂點(diǎn)霧化


            首先看看霧化的方程

            Color = f * Color(scene) + (1-f) * color(fog)

            Color(scene):背景色
            Color(fog): 霧色
            f:霧化參數(shù),隨觀察點(diǎn)的距離的增大而減小,從而可知最后得到的顏色,當(dāng)觀察點(diǎn)越遠(yuǎn)時(shí),霧色占的比例越大。

            霧有四種方式
            D3DFOG_NONE 禁用霧化效果
            D3DFOG_EXP  霧化效果隨指數(shù)增加 f = 1/(e^density)
            D3DFOG_EXP2 同上,不過(guò)公式變?yōu)?f = 1/(e^(density^2))
            D3DFOG_LINEAR 線性霧 f = (end-d)/(end-start) d 為當(dāng)前計(jì)算點(diǎn)與觀察點(diǎn)距離

            現(xiàn)在我們來(lái)看如何實(shí)現(xiàn)霧化
            首先開(kāi)啟霧化效果
            Device->SetRenderState(D3DRS_FOGENABLE,true);
            然后我們要設(shè)置霧化的模式和公式
            Device->SetRenderState(DEDRS_FOGTABLEMODE,D3DFOG_LINEAR);
            這里我將其設(shè)置成了像素霧和線性,同樣可以將其換成上面介紹的其它模式和公式
            接下來(lái)我們就要設(shè)置霧化參數(shù)了
            Device->SetRenderState(D3DRS_FOGCOLOR,oxffffffff);//設(shè)置成白色

            設(shè)置start end
            float start= 50,end = 400;
            Device->SetRenderState(D3DRS_FOGSTART,*(DWORD*)&start);
            Device->SetRenderState(D3DRS_FOGEND,*(DWORD*)&end);
            設(shè)置濃度
            float density = 0.001f;//0.0 -- 1.0
            Device->SetRenderState(D3DRS_FOGDENSITY,*(DWORD*)&density);

            這樣,我們的設(shè)置就完了,只要將霧化設(shè)置放入我們渲染場(chǎng)景中,就可以看到霧化效果了.
            但應(yīng)該注意以下幾點(diǎn)
            -----------------------------------------line
               A          B          C
                \          |             /
                 \                     /
                   \       |         /
                    \              /
                     \    d     /
                      \        /
                       \   |  /
                        \   /
                          P
            ------------------------------------------
            霧化效果是以剛剛上面講的 d 作為計(jì)算標(biāo)準(zhǔn),所以,我們從P點(diǎn)看到A ,B ,C三點(diǎn)的霧化效果是一樣的,而按常理,A ,C的霧應(yīng)該更濃才對(duì).
            很顯然,這讓我們想到,D3D會(huì)有對(duì)應(yīng)的處理辦法.
            D3D提供了基于發(fā)散的霧化效果,霧化隨觀察點(diǎn)的距離增大而增大,就像點(diǎn)光源,不過(guò),這要求我們的硬件支持,所以在設(shè)置前應(yīng)該檢查
            D3DCAPS9 caps;
            Device->GetDeviceCaps(&caps);

            if(caps.RasterCaps&D3DPRASTERCAPS_FOGRANGE)
             Device->SetRenderState(D3DRS_RANGEFOGENABLE,true);

            把這個(gè)增加到霧化設(shè)置中即可~~~

            已經(jīng)12點(diǎn)了,估計(jì)人有點(diǎn)暈,也講不明白些什么東西了,到此為止

             


             

            posted on 2009-04-20 11:58 麒麟子 閱讀(647) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): DirectX

            国内精品久久久久影院薰衣草| 久久精品免费一区二区| 波多野结衣中文字幕久久| 久久精品国产免费一区| 狠狠久久综合伊人不卡| 中文精品99久久国产| 国产精品久久久久jk制服| 久久er国产精品免费观看8| 亚洲综合日韩久久成人AV| 久久久久国产一区二区| 伊人久久大香线焦AV综合影院| 99久久精品这里只有精品| 亚洲精品无码久久久久sm| 久久亚洲天堂| 成人资源影音先锋久久资源网| 久久久久99精品成人片三人毛片 | 99久久精品免费国产大片| 噜噜噜色噜噜噜久久| 丁香五月网久久综合| 久久亚洲精品成人无码网站| 亚洲综合精品香蕉久久网97| 人妻丰满AV无码久久不卡| 久久国产精品国语对白| 91精品国产综合久久婷婷| 7777久久久国产精品消防器材| 久久精品亚洲精品国产欧美| 国产国产成人精品久久| 无码久久精品国产亚洲Av影片| 久久午夜免费视频| 亚洲AⅤ优女AV综合久久久| 精品国产综合区久久久久久| 99re久久精品国产首页2020| 久久久久久国产精品免费无码| 亚洲va久久久噜噜噜久久男同| 中文字幕无码av激情不卡久久| 久久精品无码免费不卡| 久久久久一本毛久久久| 日本精品久久久久影院日本| 青青草国产成人久久91网| 国产精品久久久久影院嫩草| 婷婷综合久久狠狠色99h|