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

正文內(nèi)容

建立高動(dòng)態(tài)范圍(hdr)渲染器-資料下載頁(yè)

2025-08-04 16:25本頁(yè)面
  

【正文】 GL_ARB_draw_buffers : enableuniform sampler2D texColor。uniform float AveLum。uniform int imgH,imgW。void main(){ float dx = (imgW)。 float dy = (imgH)。 //對(duì)texColor進(jìn)行采樣 vec4 color = texture2D(texColor,gl_TexCoord[0].xy)。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(dx*,))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(,dy))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(dx*,dy))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(,dy*))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(dx*,dy*))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(,dy*))。 color += texture2D(texColor,gl_TexCoord[0].xy+vec2(dx*,dy*))。 color /= 。 //計(jì)算該像素在Tone Mapping之后的亮度值,如果依然很大,則該像素將產(chǎn)生光暈 vec4 cout = vec4(,)。 float lum = * + * + * 。 vec4 p = color*(lum/AveLum)。 p /= vec4(vec4(,)+p)。 float luml = (++)/。 if (luml ) { cout = p。 } gl_FragData[0] = cout。 }Tone Mapping 和輸出//uniform sampler2D texSrc。uniform sampler2D texBloom。uniform float AveLum。uniform float Key。const vec4 lumfact = vec4(,)。void main(){ vec4 color = texture2D(texSrc,gl_TexCoord[0].xy)。 float lum = dot(color , lumfact)。 color *= Key *lum/AveLum。 color /= vec4(vec4(,)+color)。 gl_FragColor = clamp(color + texture2D(texBloom,gl_TexCoord[0].xy)*, ,)。}補(bǔ)充:修改后的算法詳細(xì)流程 在寫(xiě)完本文后,我發(fā)現(xiàn)原有算法有些不足之處,在texColor下采樣到texLumSample的過(guò)程中損失過(guò)大,導(dǎo)致光暈的形狀不能得到很好的重現(xiàn),且當(dāng)高亮區(qū)域較小時(shí)會(huì)導(dǎo)致光暈完全消失,同時(shí)光暈還有抖動(dòng)現(xiàn)象。近來(lái)也有一些朋友對(duì)算法的部分細(xì)節(jié)不太理解,這里我將把算法流程詳細(xì)地說(shuō)清楚。 初始化操作。創(chuàng)建以下浮點(diǎn)紋理(GL_RGBA16F_ARB):texColor(屏幕大小),img64(大小為64*64),img16(大小為16*16,后面的名稱依此類推),img4,img1,imgHalf(屏幕1/2大小),imgQuarter(屏幕1/4大小),imgEighth(屏幕1/8大小)。 渲染操作。將場(chǎng)景渲染到texColor。 HDR后處理操作:(如10幀)執(zhí)行以下操作(1)將texColor下采樣到imgQuater。(2)(上文介紹),然后把imgQuater渲染到img64,這樣img64存儲(chǔ)imgQuater的對(duì)數(shù)亮度值(3)把img64下采樣到img16,再把img16下采樣到img4,再把img4采樣到img1,此時(shí)img1即場(chǎng)景的對(duì)數(shù)平均亮度值(4)把img1的像素值讀回主內(nèi)存,對(duì)讀回的數(shù)據(jù)執(zhí)行exp()操作后得到場(chǎng)景的平均亮度,并計(jì)算曝光適應(yīng)后的已適應(yīng)亮度lumAdapted(這一步會(huì)導(dǎo)致速度下降,但通過(guò)改進(jìn)算法完全可以直接在GPU上完成曝光適應(yīng)過(guò)程,這樣就可以省去回讀操作),抽出texColor中的高亮部分,并下采樣到imgHalf中。,再把imgQuater下采樣到imgEighth。(,)。,對(duì)texColor進(jìn)行Tone Mapping,映射之后的值和imgEighth(也即Bloom Map)的相應(yīng)的值相加后輸出到屏幕幀緩沖。整個(gè)過(guò)程就是這樣,如果還有不明白的地方,歡迎和我交流。(推薦使用留言板,這樣可以更好地同他人共享)參考文獻(xiàn)   [1] Reinhard, Erik, Mike Stark, Peter Shirley, and James Ferwerda. Photographic Tone Reproduction for Digital Images. ACM Transactions on Graphics (TOG), Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH), pp. 267276. New York, NY: ACM Press, 2002. [2] HDR Lighting sample in DirectX SDK
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1