freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

建立高動態(tài)范圍(hdr)渲染器(留存版)

2025-09-18 16:25上一頁面

下一頁面
  

【正文】 .xy+vec2(,dy))。 color += texture2D(texSrc,gl_TexCoord[0].xy+vec2(,*d)) * 。 gl_TexCoord[0] = gl_MultiTexCoord0。在每一幀計算出當(dāng)前幀的平均亮度LumAve后,讓LumAdapt慢慢向LumAve逼進(jìn)。(1)將texBloom綁定到stdfbo對象,然后以texColor為紋理,渲染一個為屏幕1/4大小的矩形,這樣texBloom便成為texColor的1/4大小的副本。 現(xiàn)在討論如何計算原始圖像的平均亮度。 HDR技術(shù)原理 如何在有限的亮度范圍內(nèi)顯示如此寬廣的亮度范圍,正式HDR技術(shù)所要解決的問題。高動態(tài)范圍技術(shù)能夠很好地再現(xiàn)現(xiàn)實(shí)生活中豐富的亮度級別,產(chǎn)生逼真的效果。一個運(yùn)行中的HDR渲染器,背景墻由于過亮而產(chǎn)生了光暈這組圖像演示了動態(tài)曝光技術(shù),圖為從黑暗的隧道走向明亮的房間的一個過程,可以看到動態(tài)光線適應(yīng)的過程:房間從全白色過渡到正常曝光顏色高動態(tài)范圍的圖像每一個像素都由浮點(diǎn)型的R,G,B分量表示,這樣每個分量都可以任意大。 其中,Lscaled為映射后的值,alpha為一個常數(shù),alpha的大小決定了映射后場景的整體明暗程度,可以根據(jù)需要適當(dāng)調(diào)整,這個值在以后的實(shí)現(xiàn)中稱為Key值。 那么,對于一個像素P(r,g,b),如何計算像素的亮度Lum呢?其計算公式為: 。綁定Tone Mapping Shader,在Shader中根據(jù)計算出來的平均亮度值對texColor進(jìn)行Tone Mapping,Tone Mapping之后的結(jié)果和imgLumSample疊加后輸出到屏幕上。 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex。 vec4 lumfact = vec4(,)。void main(){ vec4 color = vec4(,)。 color +=uniform int imgH,imgW。 float luml = (++)/。近來也有一些朋友對算法的部分細(xì)節(jié)不太理解,這里我將把算法流程詳細(xì)地說清楚。,再把imgQuater下采樣到imgEighth。} //計算該像素在Tone Mapping之后的亮度值,如果依然很大,則該像素將產(chǎn)生光暈 vec4 cout = vec4(,)。 color /= 。 texture2D(texSrc,gl_TexCoord[0].xy+vec2(, *d)) * 。}//在Y軸上的高斯模糊。 gl_FragData[0] = vec4(lum,lum,lum,)。version 120extension GL_ARB_draw_buffers : enableuniform sampler2D texSrc。:void main(){再對imgLumSample進(jìn)行模糊,這樣imgLumSample就成為了texBloom的更小尺寸高亮度部分的副本。至于為什么這樣算出的值能夠合理地表示圖像的平均亮度,這里就不再詳細(xì)說明了,有興趣可以參看相關(guān)論文[1]。這里介紹DirectX SDK中所介紹的方法。例如,照相機(jī)是一個典型的從高動態(tài)范圍映射到低動態(tài)范圍的例子。 將一個寬廣的亮度范圍映射到紙張或屏幕能表示的亮度范圍類似于照相機(jī)的曝光功能。二是對于特別亮的部分實(shí)現(xiàn)光暈的效果。這個步驟在HDR渲染中被稱為Tone Mapping。然而,這些TMO的效果并不令人滿意。 上式中,δ是一個較小的常數(shù),用于防止求對數(shù)的計算結(jié)果趨于負(fù)無窮的情況。所謂光暈效果,就是抽出場景中色彩比較亮的部分,然后加以模糊,使這些較量的像素擴(kuò)散到周邊像素中,再把模糊后的圖像疊加在Tone Mapping之后的圖像上。 這個函數(shù)在場景繪制操作結(jié)束后執(zhí)行,它負(fù)責(zé)處理FBO中已得到的高動態(tài)范圍數(shù)據(jù),并映射到低范圍中,并將最終結(jié)果顯示在屏幕上。CImageScaleCopy負(fù)責(zé)把一個浮點(diǎn)紋理中的數(shù)據(jù)縮小尺寸后復(fù)制到另一個紋理中去。(如果你覺得回讀是一個很慢的操作,也可以在GPU上繼續(xù)執(zhí)行下采樣操作,直到紋理大小縮小到1*1,那么這個像素的值取值數(shù)就代表了平均亮度。 lumAdapt += (lum lumAdapt) * ( 1 pow( , 30 * dTime ) )。version 110extension GL_ARB_draw_buffers : enableuniform sampler2D texSrc。 texture2D(texSrc,gl_TexCoord[0].xy+vec2(,*d)) * 。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(,dy*))。 渲染操作。整個過程就是這樣,如果還有不明白的地方,歡迎和我交流。 color *= Key *lum/AveLum。 }Tone Mapping 和輸出//uniform sampler2D texSrc。 //對texColor進(jìn)行采樣 vec4 color = texture2D(texColor,gl_TexCoord[0].xy)。 color += color += textur
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1