在國外,有一位大神針對(duì)延遲渲染提出了邊緣檢測(cè)法,廣受業(yè)界的好評(píng)。今天微妙網(wǎng)·云渲·染就帶著大家看一看邊緣檢測(cè)究竟是怎么回事。 Shishkovtsov 2005提出了一個(gè)邊緣檢測(cè)方法,用于在幀緩存上模擬反鋸齒。這種方法需要一些與分辨率相關(guān)的魔數(shù)。我們也需要反鋸齒,我們修改了一下這個(gè)方法,使之可以與分辨率無關(guān)。 我們對(duì)一個(gè)像素鄰近的8個(gè)像素,進(jìn)行深度梯度和法線角度的采樣,這一點(diǎn)是與Gems2一致的。我們?cè)谶@個(gè)點(diǎn)上判斷深度上最大的和最小的變動(dòng),來確定邊緣有多強(qiáng)。像素之間深度的梯度是與分辨率無關(guān)的。通過比較梯度變化率之間的關(guān)系,而不是梯度,就可以做到分辨率無關(guān)了。 在這個(gè)算法中,我們沒有做對(duì)“右上”或“前”邊緣的選擇的限制,因此很多邊緣會(huì)有兩個(gè)像素寬,不過,當(dāng)使用了Filter來平滑這些邊緣后,看起來也不錯(cuò)。 邊緣檢測(cè)的結(jié)果是生成了逐像素的邊緣權(quán)重,這個(gè)值在0~1之間。這個(gè)權(quán)重反映了會(huì)有多少像素在它上面。在最后的渲染前,我們會(huì)把這個(gè)權(quán)重進(jìn)行四個(gè)Bilinear采樣。這四個(gè)采樣是中心像素權(quán)重0,四周權(quán)重為1的采樣。這樣的結(jié)果就是目標(biāo)像素的權(quán)重是它8個(gè)鄰居權(quán)重的平均值。像素越是一個(gè)邊緣像素,就會(huì)越多與它的鄰居混合。 ![]() 看了這篇教程,不知大家明白了延遲渲染的邊緣檢測(cè)發(fā)了沒有。藍(lán)海創(chuàng)·意云渲·染會(huì)不斷給大家?guī)韲鴥?nèi)最新的渲染教程,大家喜歡的話要關(guān)注一下哦。 |