預覽速度提高30倍,這是什麼黑科技?(天貓618之3D渲染篇)

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

屏幕快照 2020-06-12 上午11.28.41.png
做者|躺平技術-3D技術與渲染平臺組
編輯|橙子君
出品|阿里巴巴新零售淘系技術部服務器

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

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

image.png

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

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

在躺平設計家裏,用戶能夠很是方便地編輯3D場景,並利用極速渲染快速查看渲染效果。設計

1.gif

1.gif

1.gif

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

3D資源

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

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

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

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

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

image.png

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

image.png

解決了批量處理問題,咱們有更多的單點問題須要解決,好比模型問題:

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

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

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

細節保持效果:

image.png

外形保持效果:
image.png

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

如下是材質轉換的效果:

image.png

3D雲渲染服務

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

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

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

image.png

AceRay極速渲染

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

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

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

image.png

image.png

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

光柵化和光線追蹤

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

image.png

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

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

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

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

image.png

直接光照

image.png

間接光照

image.png

最終效果

總結

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

更多極速渲染效果圖:

image.png

image.png

image.png

image.png

相關文章
相關標籤/搜索