• <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>
            隨筆 - 505  文章 - 1034  trackbacks - 0
            <2007年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234


            子曾經曰過:編程無他,唯手熟爾!

            常用鏈接

            留言簿(94)

            隨筆分類(649)

            隨筆檔案(505)

            相冊

            BCB

            Crytek

            • crymod
            • Crytek's Offical Modding Portal

            Game Industry

            OGRE

            other

            Programmers

            Qt

            WOW Stuff

            搜索

            •  

            積分與排名

            • 積分 - 914453
            • 排名 - 14

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            l       高級效果之偽 HDR/Blow

            所謂HDR就是高動態(tài)范圍的意思。在普通的顯示器和位圖里,每通道都是8-bit,也就是說RGB分量的范圍都是0-255,這用來表示現實中的顏色顯然是遠遠不夠的。現實中的圖像的動態(tài)范圍遠遠大的多,那么如何在現有的顯示設備里盡可能的保持更大的動態(tài)范圍,而且讓它能更符合人眼的習慣就成了圖形學研究的一個熱點。通常真正的HDR的做法都是采用浮點紋理,把渲染運算的過程中,我們使用16bit的動態(tài)范圍來保存運算結果,然后對運算結果進行分析,求出這個圖像的中間灰度值,然后對圖像進行調整映射到LDR的設備中。但是這樣的算法有兩個非常耗資源的過程,其中一個是浮點紋理,另外一個就是求圖像中間灰度(通常情況是把圖像不停的渲染到RenderTarget,每渲染一次,圖像大小縮小一半,直到縮小到1x1大,一個1024 x1024的圖像需要渲染10次!)。因此雖然HDR的效果非常漂亮,但是目前還是只有為數不多的產品采用了這樣的算法,大部分都是采用的偽HDR+blow效果。

             

             

            HDR效果通常是重新調整圖像的亮度曲線,讓亮的更亮,暗的更暗一些,而Blow效果則是圖像的亮度擴散開來,產生柔和的效果。

             

             

            在這里采用一個二次曲線來重新調整圖像的亮度,這個曲線的方程是

             

             

            x [ (2-4k) x + 4k-1 ).

             

             

            K的取值范圍為0.5 – 2.0

             

             

            經過這個公式調整以后,圖像上亮的區(qū)域將更加的亮,并且整體亮度會提高。那么接下來,如何使圖像的亮度擴散開來呢?一種可行的方法就是對場景圖像做一次downsample。把它變成原來的1/4次大小,那樣就等于亮度往外擴散了4x4個象素的區(qū)域。

             

             

            技術方案已經基本有了。接下來將要在RenderMonkey里實現它,和前面的例子不同,這里需要使用RenderMonkey的多pass渲染:

             

             

            第一個pass我們先對圖像進行downsample操作。首先在原來的pass前增加一個新的pass,并命名為downsample pass。然后建立一個render to texture的紋理節(jié)點,設定它的大小(原圖像大小的1/4),并在新建立的pass里建立一個render target的節(jié)點指向它。這樣,這個pass的渲染結果就會保存到這個render to texture中。這個passpixel shader只要使用前面模糊效果的shader就可以了。

             

             

            接下來,將另外一個pass命名為render pass,并增加一個新的紋理對象。并把紋理對象指向剛才增加的render to texture,以便能在該pass中使用這個downsample過的圖像。然后增加一個float類型的變量,用來表示上面公式中提到的k值;最終工作區(qū)的結構如下圖:

            接下來編輯render passpixel shader。代碼如下:

            下面是原圖像和經過處理后圖像的對比:

            原圖                      k = 1.1                      k = 1.6

            圖:經過偽HDR+Blow處理過的圖像和原圖的對比

            posted on 2007-11-13 01:59 七星重劍 閱讀(1140) 評論(0)  編輯 收藏 引用 所屬分類: Game GraphicsHLSL&ShaderMonkey
            免费精品99久久国产综合精品 | 久久99精品久久久久婷婷| 伊人久久大香线蕉无码麻豆 | 亚洲精品乱码久久久久久久久久久久| 伊人久久大香线蕉综合网站| 一本色道久久88—综合亚洲精品| 国内精品久久久久影院一蜜桃| 99久久国产亚洲高清观看2024| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久精品国产99国产精品亚洲| 国产精品久久久久久久久鸭| 久久精品国产欧美日韩| 久久久一本精品99久久精品66| 国产精自产拍久久久久久蜜| 无码人妻久久一区二区三区| 少妇久久久久久被弄到高潮| 丁香五月综合久久激情| 97久久精品无码一区二区| 久久久国产打桩机| 日本久久中文字幕| 青青青青久久精品国产| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品NV久久久久久久久久 | 久久久久国产成人精品亚洲午夜| 色88久久久久高潮综合影院| 久久午夜综合久久| 青青草国产精品久久| 国产99久久九九精品无码| 精品国际久久久久999波多野| 久久精品aⅴ无码中文字字幕不卡| 日本久久中文字幕| 亚洲婷婷国产精品电影人久久 | 久久精品国产亚洲AV高清热| 久久久久av无码免费网| 一级a性色生活片久久无| 亚洲欧洲中文日韩久久AV乱码| 久久91精品综合国产首页| 大香网伊人久久综合网2020| 国产成人无码精品久久久免费| a级毛片无码兔费真人久久| 久久精品无码一区二区日韩AV|