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