• <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>
            隨筆 - 11  文章 - 0  trackbacks - 0
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            相冊

            關注

            網站

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            光照就是通過計算讓面對以及靠近光源的三角形看起來比較亮。正對光源的三角形可以反射出比較強的光線,而比較靠近光源的物體,光線的衰減程度會比較低。
            在Fixed Function Pipeline中,光照都是在模型的頂點上計算的,再通過內插把光照結果散播到三角形內部,這種以頂點為單位來計算的方法叫做per-vertex lighting。如果使用Shader就可以把光照計算放到像素中去做,這樣可以得到比較精確的光照結果,這種方法叫per-pixel lighting。
            Normal,即法線,用來指定模型上每個頂點所面對的方向。
            在Fixed Function Pipeline中支持四種不同的光源:方向光(Directional Light)、電光源(Point Light)、聚光燈(Spot Light)、環境光(Ambient Light)。
            方向光(Directional Light),只有方向和顏色屬性的光源,長用來模擬太陽。不具有位置屬性,無法計算出光源隨距離的衰減值,被定義成與距離無關。
            點光源(point Light),具有位置和顏色的屬性,在空間中占據一個點,并向四面八方散射。光線照到某個物體后,反射光的強度與物體表面的法線和入射光線的夾角有關。光源隨著到物體的距離增大而衰減。
            聚光燈(Spot Light),具有方向、位置、顏色這些屬性,還需要指定光柱圓錐的發射角度。落在光柱中偏外側的物體所得到的光線強度會比較弱,完全落在光柱外的物體接受不到光線。光線會隨著距離的增大而衰減,反射強度會隨著光線入射角的改變而改變。
            環境光(Ambient Light),沒有位置,沒有方向,僅僅提供一個基本的光源強度。環境光用來模擬通過反射得到的間接光源,否則有些物體可能會因為太暗而看不到。
            在3D繪圖中通過反射所得到的光源稱為Global Illumination;不是通過反射,而是直接照射的光源稱為Direct Illumination。Ambient Light是解決Global Illumination的最簡單方法。Directional、Point、Spot照射得到的光是Direct Illumination。
            Directional、Point、Spot照射到得物體表面會吸收到部分光線,也會反射部分光線。物體表面的紋理就是用來設置物體反射光線的能力。
            物體表面的反射光有兩種。一種是Diffuse Light,它會均等的向四面八方反射出同樣強度的光線;另一種是Specular Light,它是物體表面直接反射的光線。反射光線是有方向的,如果鏡頭越接近反射后的光線路徑,那么就可以看到越強的Specular Light。
            一個相當重要而且很簡單的觀念,光源強度是可以累加的。可以先計算第1個光源的結果,再把第2個、第3個、...... 、第n個光源的強度累加上去。


            光線衰減公式:1/(a*1 + b*d +c*d*d)
            // vDistance用來計算光線隨距離衰減公式中分母的(1, d, d*d)
            Vector4 vDistance(1.0f, light_distance, light_distance*light_distance);
            // g_vLightAttenuation里記錄了計算衰減公式中分母的(a,b,c)
            g_vLightAttenuation.Set(1.0f. 1.0f, 0.0f);
            // Vector3Dot(vDistance, g_vLightAttenuation) = (1,d,d*d) dot (a,b,c) = (a*1 + b*d + c*d*d)
            Vector4 vAttenuation = Vector3Dot(vDistance, g_vLightAttenuation);
            ----摘自《3D繪圖程序設計》
            posted on 2010-03-01 22:51 郭小帥 閱讀(575) 評論(0)  編輯 收藏 引用 所屬分類: Fixed Function Pipeline
            久久久久亚洲AV综合波多野结衣| 婷婷综合久久中文字幕蜜桃三电影| 99久久精品日本一区二区免费| 国产精品视频久久| 蜜臀久久99精品久久久久久| 亚洲欧美成人综合久久久| 亚洲午夜久久久精品影院| 久久精品综合网| segui久久国产精品| 久久久久久国产精品美女| 天天综合久久久网| 亚洲国产欧美国产综合久久| 91麻豆精品国产91久久久久久 | 精品久久久久久无码国产| 中文字幕精品无码久久久久久3D日动漫| 久久精品无码专区免费东京热| 亚洲乱亚洲乱淫久久| 色偷偷久久一区二区三区| 性欧美大战久久久久久久| 久久电影网2021| 久久精品国产亚洲AV高清热| 国产精品久久新婚兰兰| 久久99精品久久久久久不卡| 热re99久久精品国99热| 伊人久久大香线蕉亚洲五月天| 精品无码久久久久久久久久| 久久久久综合网久久| 久久精品亚洲中文字幕无码麻豆| 久久人人爽人人爽人人片AV不| 久久久久九九精品影院| 久久99精品久久久久久9蜜桃| 四虎国产精品免费久久5151| 精品一区二区久久久久久久网站| 99久久国产精品免费一区二区| 三级韩国一区久久二区综合 | 一级做a爰片久久毛片毛片| 久久国产成人午夜aⅴ影院| 青青青伊人色综合久久| 91性高湖久久久久| 国产精品九九久久免费视频| 久久精品国产99久久丝袜|