天貓618宣佈的 3D 購物時代,相信有很多小夥伴好奇,這背後有哪些“黑科技”?橙子從以下三點爲你揭祕—— 3D實景復刻、3D渲染、3D算法,上週講了 天貓618宣佈開啓3D購物時代,實景逛街背後的技術是這樣實現的 ,本期將和大家分享  AceRay 極速渲染。

5月28日,天貓正式宣佈開啓3D場景購物時代,3D實景逛街從此走到了電子商務的最前線。用戶足不出戶便可逛各大賣場,在虛擬3D世界中,更可以享受自由搭配傢俱的暢快感受。

3D實景逛街意味着線下的賣場所有數據需要3D數字化,這涉及到3D內容生產,數據鏈路整合,3D渲染技術等多個領域,是一項規模浩大的工程,需要設計師,工程師,以及產業鏈方面的通力合作才能做到。

躺平設計家是阿里巴巴淘系技術部聯合躺平推出的爲商家和設計師服務的免費3D設計工具和渲染服務,是一個能夠高效生產3D內容的平臺工具。其中最新推出的依託於淘系技術部AceRay雲渲染平臺的極速渲染功能,大幅度提高了設計預覽的速度,可以助力各商家和設計師更方便快速地製作3D內容,更好地融入3D場景化購物這一未來家裝購物模式。

在躺平設計家裏,用戶可以非常方便地編輯3D場景,並利用極速渲染快速查看渲染效果。

AceRay 極速渲染雲平臺涵蓋了大量的工程化設計和最新幾何/渲染研究成果,包括3D資源的處理,服務器資源調度,以及圖形渲染算法。

3D資源

在進入到渲染前,需要提前準備好渲染資源,這些資源包括模型、材質。

家裝行業的業務複雜度很高,需要支持大量不同格式模型上傳,同時需要爲各個平臺產出模型和材質。不同格式模型上傳需要轉成中間格式;目前家裝模型通常三角面數都是非常高,需要通過幾何優化手段把面數降下去;家裝模型中的貼圖通常都非常大,需要根據各個平臺優化貼圖;等等。

爲了處理各個不同的問題,需要大量的服務器處理各個不同的問題,但是這些服務器怎樣串通起來,怎樣合理的調度能夠使得這些服務器的綜合效率最高,各個服務器間怎樣併發處理大量的模型,爲各個平臺產出不同的模型格式,需要一個管控平臺來處理這些問題。因此我們開發了模型中控平臺,支持無上限提交模型,同時併發處理大量模型,爲每個模型定製不同的處理流程,能夠自由地控制每個模型的處理優先級。

模型中控平臺中包含兩個核心部分:流程引擎和調度引擎。

開始一個新模型轉換流程時,第一步進入流程引擎,分析流程節點,找出第一個需要執行的節點;然後任務交付到調度引擎,調度引擎負責找出最合理的遠程執行機器,將任務分給它,並等待它執行完畢;當遠程機器執行完畢時,調度引擎將任務交回給流程引擎,流程引擎將當前模型流轉到所屬流程的下一個節點,再度交付到調度引擎。重複執行這樣的過程,直到當前模型的全部流程被執行完。

模型中控平臺上可以同時運行N種不同的處理流程,一種典型的處理流程如下:

解決了批量處理問題,我們有更多的單點問題需要解決,比如模型問題:

目前設計師或者工廠所涉及的家裝模型通常三角面數都是非常高的,材質非常複雜。

高面數有利於增加模型的細節,但是對於極速渲染來說,這麼多的三角面片就不是一件好事了。因此我們需要在渲染之前,預處理這些擁有大量三角面片的模型。目前市面上類似的工具應該說是形形色色,都能做到精簡模型面片的功能。 但是具體到細節上,減面後需要保持原模型的各種細節,要有精準的法線,uv等要求,最重要的是一套參數控制所有模型,能夠達到非人工干預、自動化、規模化的模型處理工具,在工業界並不存在。 因此我們自主開發了一套幾何優化工具解決上述問題。

對比Max處理的模型,我們處理的模型在外形保持、細節保持和法線、UV保持都要更好。

細節保持效果:

外形保持效果:

在解決了面數問題後,我們需要進一步解決材質問題。在家裝行業,比較常見的一種材質是Vray材質,這種材質的參數非常多,計算過程非常複雜,非常不利於極速渲染。而市面上又沒有一種Vray材質轉更簡單材質的方法。因爲我們自研了一套材質轉換方案,將現存的材質轉換到更簡單的材質來提升極速渲染的速度。

以下是材質轉換的效果:

3D雲渲染服務

淘寶的商家依賴於我們的渲染服務,因此我們並非在開發一個單點渲染引擎,而是需要一個服務器集羣來處理上大量的請求,這個服務器集羣組成了雲渲染平臺。雲渲染平臺管理所有的渲染請求類型,包括離線渲染、極速渲染,以及布料仿真。雲渲染平臺隔離業務方和渲染服務器,並統一了渲染接口,調度器會爲每個獨立的請求尋找最合適的機器,最快速地完成這次渲染請求。

雲渲染平臺分爲兩層:調度集羣和渲染集羣。調度集羣向渲染集羣發送任務,渲染集羣向調度集羣上報狀態。

渲染任務首先進入調度集羣,調度集羣根據上報的狀態和發送歷史,選擇最優的渲染服務器,將任務發送給它;渲染服務器更新並上報它的機器狀態,然後開始執行渲染。

AceRay極速渲染

設計工具通常都使用離線渲染器。離線渲染的效果很好,但是比較大的問題是渲染速度很慢,渲染一張圖的時間短則幾分鐘,長則幾小時。對於設計師來說,渲染速度慢無疑會降低生產3D場景的效率,特別是某些場景中有需要頻繁調整的元素時,快速渲染的需求顯得更爲迫切。對於消費者,快速的效果預覽也十分必要,人們通常沒有耐心爲了一張效果圖等待太長時間。

AceRay極速渲染服務正是爲了解決離線渲染速度慢的問題而誕生,渲染器的目標是要幫助設計師提高3D場景生產效率,提高消費者3D功能使用體驗。

談到渲染,效果永遠是排在第一位的。如果沒有優秀的渲染質量,那麼再快的速度也失去了意義。我們使用 AceRay 雲渲染平臺,在十幾秒內渲染了兩張室內家裝的效果圖。

在保證上述的渲染效果時,極速渲染的渲染速度可以達到離線渲染的 20~30 倍,這無疑是一個很具有誘惑力的功能。在躺平設計家裏,極速預覽功能通常在3~5秒就能得到一張預覽圖像,極大提升了設計師的工作效率。

光柵化和光線追蹤

首先簡單介紹一下渲染原理。以遊戲爲代表的實時渲染業界通常使用光柵化渲染器,而以電影特效、設計工具爲代表的離線渲染業界通常使用基於光線追蹤的渲染器。

光柵化渲染的管線和光線追蹤的渲染管線和有着很大的不同。傳統的光柵化渲染管線包括頂點處理,圖元組裝,光柵化以及像素着色等階段,是一套在遊戲和實時渲染業界久經考研的渲染方案。自人類有圖形硬件開始,圖形硬件就在做一件事情,那就是加速光柵化渲染。然而光柵化渲染有着致命的缺陷,在渲染過程中,物體與物體之間的相互關係缺失。這個缺點導致了涉及到物體相互關係的光照效果都很難計算,需要設計特殊的算法,花費高昂的代價來實現。這些效果包括陰影,間接光照,鏡面反射,環境光遮蔽等。正因如此,光柵化渲染的效果在很長一段時間內都難以比肩離線渲染,做不到真正的物理真實的渲染。

而離線渲染使用的基於光線追蹤原理,簡單來說是從相機的位置出發,向屏幕上的每個像素的位置發射光線,通過模擬光線的各種反射/折射/散射的過程,從而實現真實的渲染效果。光線追蹤的原理是簡單的,但是要達到真實的渲染效果,每個像素需要大量的光線和計算,這是導致離線渲染速度慢的最主要原因。儘管現在CPU通常都是多核設計,但是這些計算硬件在離線渲染巨大的計算量面前還是顯得力不從心, 要真正能做到能夠在十幾秒甚至幾秒內渲染出效果圖,這個效率還是遠遠不夠的

基於光線追蹤的離線渲染器,本質來說是使用光線追蹤的功能,利用蒙特卡洛方法,對高維的渲染方程做數值估計。而蒙特卡洛方法使用了隨機採樣,爲了達到較好的渲染質量,需要很高的採樣數量。

AceRay極速渲染採用定製的優化算法,很好的解決了離線渲染中需要很高採樣數的問題,在較快的時間內使用光線追蹤算法獲得平滑的光照效果。

直接光照

間接光照

最終效果

總結

雖然圖形學和光線追蹤已經有相當長的歷史了,基於光線追蹤的快速渲染還是一個相對較新的領域。如何更好地利用硬件計算能力,結合當前業務的需求,做出快速而高質量的渲染器是一個相當富有挑戰性的工作。雖然用戶通常只會接觸到最終的渲染效果圖,然而渲染之前的模型處理,場景處理,服務器調度等工作是整個渲染服務的基石。3D業界的數據流目前是非常多樣化的,如何兼容各種數據流,處理成爲統一的渲染器輸入格式,高效調度服務器資源,完成渲染,這背後的工作值得更多的關注和讚賞。

更多極速渲染效果圖:

✿  拓展閱讀

者|躺平技術-3D技術與渲染平臺組

編輯|橙子君

出品| 阿里巴巴新零售淘系技術部

相關文章