高動態(tài)光照渲染(High-Dynamic Range核蘸,簡稱HDR)圖像巍糯,相比普通的圖像,可以提供更多的動態(tài)范圍和圖像細(xì)節(jié)客扎,根據(jù)不同的曝光時(shí)間的LDR(Low-Dynamic Range)圖像祟峦,利用每個(gè)曝光時(shí)間相對應(yīng)最佳細(xì)節(jié)的LDR圖像來合成最終HDR圖像,能夠更好地反映出真實(shí)環(huán)境中的視覺效果徙鱼。
如上文所說HDR宅楞,為高動態(tài)范圍的簡稱,何為高動態(tài)范圍袱吆,舉例說明:
現(xiàn)實(shí)真正存在的亮度差厌衙,即最亮的物體亮度,和最暗的物體亮度之比為10的8次方
绞绒, 而人類的眼睛所能看到的范圍是10的5次方左右婶希,但是一般的顯示器,照相機(jī)能表示的只有256種不同的亮度蓬衡。
但是我們可以多拍幾張照片喻杈,2張,3張狰晚,....筒饰, 甚至幾十張,這些照片的曝光依次增大壁晒,很多朋友應(yīng)該可以想到瓷们,隨著照片曝光的增大,照片會依次變亮,換一種角度换棚,照片所表示的細(xì)節(jié)會由暗處向亮處改變式镐。
根據(jù)上面的原理,如果我們將照相機(jī)拍攝的很多張圖片合成固蚤,結(jié)果圖片的數(shù)量級一般為10的16次方甚至更多。這樣問題就出現(xiàn)了歹茶,或者更高數(shù)量級的亮度只能存在電腦里夕玩,而一般的顯示器只能表示10的8次方個(gè)亮度數(shù)量級,用256個(gè)數(shù)字來模擬
所能表示的信息惊豺,這種模擬的方法就是HDR技術(shù)核心內(nèi)容之一燎孟,學(xué)名叫Tone-Mapping(色調(diào)映射) 。用Tone-mapping壓縮以后尸昧,我們所合成的HDR影像就能很好地在顯示器上顯示了揩页,能給人以震撼人心的效果。
但是事實(shí)上烹俗,對人物的渲染效果不怎么好爆侣;用了gamma效果就是一層霧霾;
所以幢妄,只能繼續(xù)找方案
參考知乎的文檔
終極版是用的美國電影藝術(shù)與科學(xué)學(xué)會的算法(ACES ToneMapping)兔仰, 我都試了一遍,這些家伙都是處理物體蕉鸳, 人物處理也不好乎赴。
加到我的美顏算法:
//acesToneMapping
vec3 x = centralColor.rgb * 0.8; //0.6
centralColor.rgb = clamp((x * (2.51 * x + 0.03)) / (x * (2.43 * x + 0.59) + 0.14), 0.0, 1.0);
gl_FragColor = vec4(centralColor, 1.0);
效果一般,不過用這個(gè)基本可以不用其它美顏算法了潮尝,皮膚也比較白榕吼;