您的購物車是空的

V-Ray Next: NVIDIA Optix 降噪功能剖析

由 Chaos Group Lab 總監-Christopher Nichols 分析 V-Ray Denoiser 以及 NVIDIA OptiX Denoiser 差異,以及 OptiX Denoiser 在 V-Ray 當中的運用。

作者-Christopher Nichols
Chris 目前擔任 Chaos Group 實驗室總監。同時也擔任 CG Garage 廣播主持人,每週可吸引二萬人收聽觀眾。對特效與設計有相關背景,Chris 曾在 Gensler、Digital Domain、Imageworks 以及 Mathod Studios 任職。曾參與過《黑魔女:沉睡魔咒》、《遺落邊境》以及《創:光速戰記》。
https://www.chaosgroup.com/blog/category/cg-labs



雜訊的問題

Ray Tracing (光線追蹤),就像是攝影一樣,需要許多光線的採樣來得到較乾淨的畫面,而在這兩種情況下,雜訊一直是個挑戰。在真實世界的攝影中,當沒有足夠的光線時,採樣值不足而造成整體畫面顆粒感十足。一樣的情況發生在 CG 裡的 Ray Tracing 演算。如果你的光線追蹤的時間很短的話,造成採樣值數量不足,導致畫面雜訊增加。在這兩種情況下,其解決方案就是加入更多的採樣。在攝影時,更多的採樣意味著得將加大光圈(F值)或是增加曝光時間。在 CG 中,要不就是花更多的時間來計算,不然就是提升電腦運算效能來快速解算完畫面。

另一件事情能夠幫助降低雜訊的方式稱作-Denoising(降噪)。最簡單降噪的方式是將所有臨近的像素做整體性的模糊,來為整體畫面取的平衡。但其結果會造成整體畫面變的模糊。如果降噪解決方法能夠去偵側物件邊緣,並且讓它們保持銳利,那降噪的結果會更好。而這也是降噪技術中更困難得解決的問題。

在下方的範例中,我們先從一個只有一點點採樣而充滿雜訊的畫面開始。第二張圖片則展示了當套用了簡易的模糊後所發生的事,第三張圖片則展現了同時偵測物件邊緣以及套用模糊效果的情況。在這些圖片中,我們使用 Photoshop 的「Smart Blur」濾鏡。技術上來說,Photoshop 的 Denoiser 會比起 Smart Blur 來的效果好,但是已經足夠來描繪出這個論點了。

原始雜訊影像
在 Photoshop 中加入高斯模糊
在 Photoshop 中加入高斯模糊

在 V-Ray 3.x 版本中,我們介紹了自己的降噪解決方案。它允許使用者算圖算到一定程度之後,讓 V-Ray 基於現有的資訊去進行降噪。這個過程在 GPUs 運算執行上是非常的好。其中一件在我們推出的《Guide to GPU》文件中所提到的是,GPU 很擅長大量的平行運算任務。而降噪是便是那其中一項。有了 GPUs,我們能得到二十倍的處理速度提升,並且降噪的過程在幾秒內完成。

但它其實可以更快的。如果,不是單單各自為每張畫面進行降噪呢,它可以去參考先前降噪的方式來更快的解決問題呢?


...

V-Ray for 3ds Max 永久授權 - www.gemhorn.com

建立貼近真實影像,提供更快、更簡便、更全面的 3D 動畫製作過程!


使用中樞網絡來幫助降噪

"使用先前「學習到」的資料"是機器學習的基礎。在 V-Ray 中,它可以使用在 Light cache 過程中「學到」的資料,來更快地協且解決各種算圖問題。舉例來說,Adaptive SamplerAdaptive Lights 以及新的(V-Ray 4.0 beta) Adaptive Dome Light 都是使用這種概念。但如果 V-Ray 能夠從其它算圖引擎去學習呢? 而不是只有自己本身。

現在,關於「Deep Learning 深度學習」以及「Deep Neural Networks 深度神經網絡」(基本上這兩者是相同的)。神經網絡能觸及多深,基本上是指網絡所包含的圖層數量有多少。這個概念是建構一個機算機網絡,它能夠學習如何去解決特定的問題,不論是提供問題的解決方案,或是透過自我測試去學習。一旦網絡對於如何解決問題有更好的了解之後,像是降噪,它便能夠以更快的速度去解決。

試著想像,如果你不知道 5+5=10 的話,而你每次只能用手指頭去數,那這會是個較慢的解決方案。但因為你已經知道答案了,那你可以跳過數手指頭的過程,而更快的得到解答。

在這個理論中,藉由餵養中樞神經網絡上千個不同的雜訊算圖以及最終乾淨的版本,它便能夠依此乾淨版的圖片去學習如何去解決那些噪點,然後將此經驗套用到其它案例上。這正是 NVIDIA 所推出的「OptiX」AI 人工智慧加速降噪器。他們使用上千張用 IRay 算圖來建構了一個中樞網絡,而這個學習到的資料可以套用到其它 Ray-traced 的圖像中。而我們便決定實驗看看這個學習到的資料能夠對 V-Ray 有什麼幫助。


速度是一切

而 NVIDIA 的 OptiX Denoiser 比起 V-Ray 的 Denoiser 有什麼優勢呢? 當 V-Ray Denoiser 能夠以很快的速度在 GPU 上來對畫面進行降噪,而 OptiX 解決方案則能夠「即時地」為畫面進行降噪。但記住,降噪後的畫面通常不會太過於精準。定義上來說,它對於最後畫面應該是如何的提供了最佳預測。也意味著,準確性也許不是最重要的事情。如果你可以能夠即時地得到可用的無雜訊影像,它便能夠為你的工作流程帶來衝擊,特別是在進行燈光與視覺開發的製作過程中。

而 NVIDIA 的 OptiX Denoiser 是如何在 V-Ray 中運作呢? 在 V-Ray 中使用學習到的資料是有可能的,即便那些資訊是使用Iray 算圖引擎收集而來的。我們甚至能夠使用 V-Ray 算圖引擎來「重新訓練」這個中樞網絡。

愈多「真實」的資訊,denoiser 便更了解解這張影像,對比起用猜測的方式,它能夠把工作做的更好。舉例來說,我們來看看邊緣偵測的情況。因為邊緣通常會依據臨近像素之間對比程度愈高來判斷,一張充滿雜訊的影像也許沒有足夠的資訊來好好地偵測到邊緣。當你在 V-Ray 中計算 Diffuse Pass 以及 Normal Pass 時,它收集了關於場景中足夠資訊來決定邊緣是在哪裡。

結合了 Render Elements 以及學習到的資料後,OptiX Denoiser 能夠對於最終影像提供非常好的預測,甚至只有少許的採樣而已。而這類型的降噪是能夠在 GPU 或 CPU 上來運算,對使用者來說,最大的好處是能夠即時互動的使用。


一些測試結果

在這個範例中,我們看到的是一個有許多全局照明(Global Illumination)的複雜場景。我們使用 Diffuse 以及 Normal pass 來作為 Denoiser 的一部份。在算圖的過程中擷取幾張圖來對比原始影像和降噪後的差異。

V-Ray Pass 1 次降噪前後比較 

V-Ray Pass 18 次降噪前後比較 

V-Ray Pass 11431 次降噪前後比較 

你可以注意到在 Pass 1 的時候,得到一個幾乎無法使用,甚少資訊的影像。然而,畫面中的場景可說是與最終畫面的光影效果相差甚多。但隨著計算次數愈來愈多,則愈接近最終的成像。然而,你可以注意到,在最終畫面以及最終降噪後的畫面還是有些許的差異。

在這段影片中,能夠看到 NVIDIA OptiX Real time 降噪的真正威力。看看幾個不同場景,能夠在算圖過程中就得到無噪點的畫面。


目前的限制

當中還是有一些在未來仍待解決的限制

● 經過 OptiX denoiser 降噪的影像只是個大概的預測。它也許與最終結果非常接近,但透過非降噪方式計算的畫面成果會更加精準。
● OptiX denoiser 的影像畫面中,顏色是被溢制的(Clamp),降噪的畫面其 Clamp 值是 1,而且無法取得與 HDRI 相同的顏色範圍。
● OptiX denoiser 會在每次 V-Ray 計算時重新更新。V-Ray 的漸近式算圖是一次次的來運算。在範例檔中,每一次的運算所花時間是以毫秒來算,但在更複雜的場景中,每次的運算可能會花上分鐘。使用 OptiX Denoiser 時,你將只能夠看到每次計算後的降噪結果。
● OptiX denoiser 在算圖的初期階段有許多雜訊時是非常好的。但到後期雜訊愈來愈少時,OptiX 降噪也許就不再具有優勢。
● OptiX 也許對動畫製作不是理想的。動畫製作時,我們還是建議使用 V-Ray 的降噪功能來橫跨影格之間的計算。
● OptiX 只會針對 Beauty Pass 進行降噪,而下一版本的 V-Ray 則可對每個算圖圖層進行降噪。
● 當使用 V-Ray 的 CPU 算圖時,你必須要關閉反距齒濾鏡(Anit-aliasing filter) 才能讓 OptiX denoiser 產生作用。
● V-Ray 算圖可以在任何硬體上運作,但 OptiX denoiser 則需要 NVIDIA GPUs。


結論

許多人都已經使用 V-Ray 的互動運算模式(Interactive mode)。它是一個很棒的方法來即時看到場景中燈光、材質的更新結果。但問題是,基於漸近式運算的天性,畫面在開始時是相對充滿雜訊的。而來自 NVIDIA 加入 V-Ray 中新的 OptiX denoiser,「即時」、「智能降噪」能夠給使用者在調整時,看到無噪點的場景效果。

Lumion OpenStreetMap 補丁下載安裝指南
V-Ray for SketchUp 3.6 網路研討會!

相關文章