• <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。
            一個相當重要而且很簡單的觀念,光源強度是可以累加的??梢韵扔嬎愕?個光源的結果,再把第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 郭小帥 閱讀(574) 評論(0)  編輯 收藏 引用 所屬分類: Fixed Function Pipeline
            国产一久久香蕉国产线看观看| 久久99精品久久久大学生| 狠狠色丁香久久婷婷综合五月| 精品人妻久久久久久888| 97久久超碰国产精品2021| 国产精品欧美久久久久无广告| 婷婷国产天堂久久综合五月| 亚洲性久久久影院| 精品一区二区久久| 麻豆久久久9性大片| 久久精品免费一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 欧洲国产伦久久久久久久| 无码久久精品国产亚洲Av影片 | 99久久国产亚洲综合精品| av无码久久久久不卡免费网站 | 亚洲va久久久噜噜噜久久天堂| 91精品无码久久久久久五月天| 亚洲精品乱码久久久久久按摩 | 国产精品内射久久久久欢欢| 亚洲女久久久噜噜噜熟女| 国产精品VIDEOSSEX久久发布| 久久久久亚洲Av无码专| 色妞色综合久久夜夜| 久久亚洲2019中文字幕| 久久精品国产免费一区| 人妻久久久一区二区三区| 色妞色综合久久夜夜| 一级做a爰片久久毛片免费陪| 久久国产综合精品五月天| 99久久精品免费| 国产精品久久一区二区三区| 久久婷婷国产综合精品 | 久久精品国产半推半就| 人妻无码中文久久久久专区| 一本色综合网久久| 漂亮人妻被黑人久久精品| 亚洲AV无一区二区三区久久| 久久天天躁狠狠躁夜夜96流白浆| 国内精品伊人久久久久777| 亚洲国产精品无码成人片久久|