By accepting you will be accessing a service provided by a third-party external to https://www.incgmedia.com/

Facebook (Meta) 與 Blender 合作,期盼提升 Cycles 即時渲染效能與虛擬人類品質!

Facebook(現為 Meta)在 2020 年加入 Blender Foundation,雙方合作開發 Cycles 新技術,由兩位研究科學家 Feng Xie 和 Christophe Hery 領導的 Facebook Reality Labs 團隊,選擇以 Cycles 作為部分專案的渲染引擎,試圖降低場景資料更新時所耗費的成本,提升 Cycles 即時渲染技術,主要包含:場景更新優化、新增原生 API 與 Alembic 等程序性功能,以及渲染出更高品質的皮膚與眼睛的 BSDFs 材質計算模型。


場景更新優化,減少記憶體消耗與同步時間

為了支援更多不同的平台,Cycles 將整個場景的資料統一儲存在特定的記體暫存區裡。例如,所有模型與其 UV 會一併儲存在記憶體裡的單一連續的暫存區裡。但此方法會有個問題,如果場景一有任何變化,原本的暫存區會在重新創建之前被破壞,這涉及到繁瑣的流程,首先得複製到暫存區,再複製到裝置,光是這樣的複製與資料傳輸就會非常耗時。

不同模型的資料在複製到裝置前,就會被打包到一個單一特定的暫存區中
當模型被修改時,所有資料都會失效、然後再被重新打包、複製到裝置中

根據此情形,Feng Xie 提出一個解決方案,那就是保留暫存區,只要物件的數量或其 UV 保持不變,就只需要將改變的物件資料複製到暫存區中。如果只有模型位置發生了變化,以往必須複製出所有資料,例如:UV 與參數等,但現在則僅需要將其位置複製到暫存區。

只有經修改後的物件其特定資料會無效並可被複製,但整個暫存區還是得複製到裝置中

變化偵測(Change detection)是透過新 API 完成的,其可用於組成 Cycles 場景節點。雖然以往客端的應用程式可以直接進入節點的 socket,但現在它們被封裝,且具有特定標誌來標示其值是否有被修改,因此使用者可在 Blender 或其他應用程式同步數據時,自動檢測發生了什麼變化,避免做不必要的工作。另一個優化是為 OptiX 添加了 BVH(包圍體階層,幾何物體集合的樹狀結構),將物件的 BVH 保存在記憶體中,只有在物件的拓撲發生變化時才會重建。總而言之,不僅能降低 Cycles 的記憶體消耗,並可減少一半的同步時間。


添加程序性工具,快速加載數據

另一個新功能是添加了程序性系統,它是一種節點,能在渲染前在場景中產生其他節點,這在其他渲染引擎中很常見。團隊選擇 Alembic 作為 Blender 第一個程序性系統的基石,其經常被其它 3D 系統廣泛用於交換烘焙幾何動畫(包括皮膚和毛髮變形)。Alembic 可直接連接到 Blender,且並不會從 Alembic 檔案中加載數據,從而節省了寶貴的時間,甚至還具有內建緩存,可以預先加載數據,以限制讀入寫出的操作。以 Reality Labs 建立的虛擬人物 Trudy 為例,其由 54 個模型物件總計 34 萬面三角面組成。在 Blender 3.0 中使用 Cycles 的Alembic 程序性渲染,將幀速提高了 12 倍,從每秒 2 幀增加到 24 幀。


優化 BSDF,模擬出更好的表面散射效果

Facebook 團隊的 Christophe Hery 也透過增加 anisotropic phase 功能,改善其表面散射效果,模擬出更好的光與皮膚效果。雖然這種合作以往都專注於同步速度,但現在則較注重於正確性與路徑追蹤的速度。此外,團隊也提出改善焦散渲染的修補程式,並表示目前仍有一些功能是可優化的,像是提高 Cycles 的數據傳輸和內建記憶體使用的性能(尤其是 VRAM)。


資料來源:Blender

7 個步驟帶你一探建築設計師,如何打造絕美冬季場景
當威斯安德森遇上 2D 動畫,一探《法蘭西特派週報》動畫橋段的幕後製作

相關文章

還沒有帳號嗎? 點此立即註冊!

登入您的帳號