編者按:云計算與網(wǎng)絡(luò)基礎(chǔ)設(shè)施發(fā)展為云端渲染提供了更好的發(fā)展機會,華為云隨之長期在自研圖形渲染引擎、工業(yè)領(lǐng)域渲染和AI加速渲染三大方向進行云渲染方面的探索與研究。本次LiveVideoStackCon 2023上海站邀請了來自華為云的陳普,為大家分享云渲染在垂直場景的一些應(yīng)用。
大家下午好,今天非常榮幸和大家進行分享交流,本次分享的主題為華為云渲染實踐——從2D圖形到3D空間。
本人于2005年加入華為公司,自2007年至今曾先后負責(zé)華為云計算、自研桌面云和人工智能等技術(shù)的研發(fā)工作,目前正致力于華為云渲染服務(wù)的研發(fā)。
本次分享分為以下幾部分:首先介紹渲染技術(shù)的范圍和云渲染希望解決的問題,其次介紹華為云渲染在2D、3D和云原生渲染方面的一些實踐,再到工業(yè)圖像和AI加速渲染方面的實踐。
-01-
渲染技術(shù)的范圍
提到云渲染,大家可能會直接聯(lián)想到云游戲,實際上二者并不等同。華為云致力于將渲染技術(shù)應(yīng)用于各個行業(yè),目前主要包括實時渲染和離線渲染兩大分支,實時渲染的落地場景包括虛擬展會、汽車展示、虛擬空間和數(shù)字人等等,離線渲染更注重逼真的效果,主要應(yīng)用于設(shè)計效果圖和影視等場景。
-02-
云渲染希望解決的問題
一部分人容易直接將渲染與3D圖形劃等號,因此首先解釋一下渲染的概念。百度百科將渲染定義為CG的最后一道工序,這個解釋偏向于離線渲染。維基和百度百科也曾在瀏覽器引擎、OpenGL中提及渲染,可以看到渲染的對象是包括2D和3D圖形的。維基百科對渲染的定義是較為準確,它實際上指軟件利用二進制和格式化數(shù)據(jù)生成圖像的過程。
我們將云渲染定義為:實現(xiàn)客戶的圖形渲染業(yè)務(wù)上云,整個流程從無圖形到2d圖形再到3D圖形。
我們的現(xiàn)有圖像渲染架構(gòu)如上所示,3D技術(shù)最下層的GPU到顯卡驅(qū)動、DX、OpenGL、Vulkan運行庫、3D渲染引擎再到3D應(yīng)用程序,直接使用底層API開發(fā)圖形渲染程序難度較大。
另一條2D應(yīng)用程序分支主要包含大家常見的Office等PC 2D應(yīng)用程序,從GPU、顯卡驅(qū)動、微軟定義的GDI運行庫、GUI框架再到2D應(yīng)用程序。
-03-
2D渲染實踐
接下來介紹我們的云端2D實踐。標準的2D圖形顯示流程如上圖所示,首先由應(yīng)用程序調(diào)用GUI程序庫,GUI庫轉(zhuǎn)化為底層GDI運行庫調(diào)用,此時運行庫還處于用戶態(tài),沒有調(diào)用硬件。隨后GDI運行庫調(diào)用顯卡驅(qū)動,顯卡驅(qū)動調(diào)用顯卡,完成圖像渲染并輸出至顯示器。
那么實現(xiàn)2D應(yīng)用的遠程顯示是否只需要將渲染后的畫面編碼并傳輸?shù)娇蛻舳耍繉嶋H上這種方式存在編碼效率低、視頻帶寬占用大和有損壓縮導(dǎo)致顏色失真等缺點,并不適用于2D渲染上云。
我們設(shè)計的渲染流程是在顯卡驅(qū)動獲取2D圖像渲染調(diào)用后,將圖像渲染調(diào)用序列轉(zhuǎn)化成數(shù)據(jù),利用2D渲染指令處理程序?qū)?shù)據(jù)進行處理、編碼后進行畫面無損壓縮,最終通過網(wǎng)絡(luò)傳輸?shù)娇蛻舳私獯a顯示。以文字輸入為例,輸入的字符串通過字體驅(qū)動轉(zhuǎn)為像素級文字,并且只需在屏幕上的小范圍更新區(qū)域顯示,傳輸?shù)臄?shù)據(jù)量不大,可以實現(xiàn)無損壓縮。以上流程在Windows和Linux平臺都有實現(xiàn)方案。
-04-
3D渲染應(yīng)用上云實踐
3D云渲染架構(gòu)和2D渲染類似。早期由于技術(shù)條件限制,我們選擇使用GPU直通技術(shù),將GPU與虛擬機綁定,虛擬機可以直接訪問GPU,獲得高性能圖形渲染能力,再通過遠程應(yīng)用技術(shù)將畫面?zhèn)鬟f至客戶端。
這種方式的優(yōu)點是虛擬機可以直接安裝設(shè)備商的標準顯卡驅(qū)動,保證了兼容性,使顯卡接近于物理GPU性能。缺點是GPU與虛擬機綁定,失去了靈活性,并且成本較高。但它目前仍是主流的云上GPU使用方式。
我們于2012年嘗試將渲染從云端轉(zhuǎn)到客戶端遠程完成,本質(zhì)上需要獲取用戶程序的3D指令流。
按照微軟WDDM顯卡驅(qū)動可以捕獲到用戶應(yīng)用程序3D圖像渲染的調(diào)用。在該架構(gòu)下,驅(qū)動程序分為用戶態(tài)和內(nèi)核態(tài),實現(xiàn)3D程序需要借助Direct運行庫,它調(diào)用設(shè)備廠商提供的驅(qū)動,并通過內(nèi)核態(tài)驅(qū)動與GPU進行交互。OpenGL也存在類似程序。
于是我們將全部3D應(yīng)用程序指令流處理后傳輸至客戶端,在客戶端重新進行渲染,經(jīng)過50多款游戲測試,基本實現(xiàn)了渲染功能。但帶寬存在不穩(wěn)定性,實現(xiàn)難度和所需成本都比較高。
2012年我們開始研發(fā)軟件GPU虛擬化。它的基本原理通過兩種虛擬機實現(xiàn),一種是為客戶服務(wù)的虛擬GPU虛擬機,另一種是前述的使用直通技術(shù)的物理GPU虛擬機。
我們在虛擬化平臺對兩種虛擬機構(gòu)筑了內(nèi)存通信,在虛擬GPU虛擬機安裝虛擬顯卡驅(qū)動,利用驅(qū)動捕獲3D圖像驅(qū)動調(diào)用,并利用共享內(nèi)存?zhèn)鬏斨廖锢鞧PU虛擬機,在物理GPU虛擬機中利用直通物理顯卡進行渲染,渲染后進行畫面回傳。
這種方式面臨的挑戰(zhàn)有兩種,一是由于DirectX具有多種版本,驅(qū)動兼容實現(xiàn)難度大。二是內(nèi)部共享內(nèi)存?zhèn)鬏斶€需進一步加速。存在的缺點是方案本身屬于資源搶占模型,隔離能力較差,其次是對虛擬顯卡驅(qū)動兼容性研發(fā)投入人力非常大。
2013年我們與英偉達合作,在虛擬化平臺支持硬件GPU虛擬化,這種方式可以獲得更好的隔離能力和驅(qū)動兼容性,缺點是Nvidia按照虛擬機單獨收取License費用,成本較高。
-05-
云原生渲染實踐
以上介紹的方案僅是圍繞操作系統(tǒng)級別支持的底層圖形渲染能力,對業(yè)務(wù)具體場景滲透的不夠。從實際業(yè)務(wù)場景來看,華為云渲染的目標是幫助客戶圖形渲染場景上云,離線渲染場景主要服務(wù)于影視和高清設(shè)計圖,由此衍生的應(yīng)用級渲染技術(shù)包括AI渲染加速和華為云原生渲染引擎支持的離線光追渲染。
實時渲染場景服務(wù)于3D空間、數(shù)字孿生、實時設(shè)計和游戲等,主要分為現(xiàn)有3D應(yīng)用無需修改直接上云和經(jīng)過云原生優(yōu)化后上云兩套方案,分別包括3D應(yīng)用實時渲染、云應(yīng)用以及遠程渲染、3D空間加速。
接下來介紹實時渲染場景下的云渲染技術(shù),華為云通過提供云應(yīng)用產(chǎn)品幫助實現(xiàn)現(xiàn)有應(yīng)用直接上云,主要包括對CPU/GPU算力要求較高的3D設(shè)計類軟件,這解決了軟件下載安裝耗時費力和銷售價格昂貴的問題,例如CAD、CAE、CAM等設(shè)計、建模、仿真軟件類軟件。
它的原理是利用Windows多會話技術(shù)來構(gòu)建輕量級的隔離技術(shù),使Windows Server同時服務(wù)多個客戶端。它的優(yōu)點是具備一定隔離能力,并且由于在虛擬機層面實現(xiàn)了多會話,每個會話都可以直接訪問物理GPU。它本身是標準的Windows技術(shù),和企業(yè)內(nèi)部網(wǎng)絡(luò)具備很好的互通性。缺點是GPU計算與顯存處于多用戶搶占模式,無法隔離。并且每個會話要獨立付費Windows RDS License。
為了優(yōu)化前面提到的License成本問題,我們通過將沙箱和Hook技術(shù)結(jié)合,讓W(xué)indows不使用多會話技術(shù)運行多個應(yīng)用,并服務(wù)于多個接入客戶端,這也是目前云渲染的主流技術(shù)方案。它的優(yōu)點是不依賴Windows多會話技術(shù),降低了License成本,缺點是相對于GPU虛擬化,資源隔離能力有限。
前面提到過的硬件GPU虛擬化也是一種主要的實現(xiàn)方式,但需要增加遠程交互模塊對3D應(yīng)用進行管理。它的優(yōu)勢是隔離能力和兼容性好,缺點是Nvidia按照虛擬機單獨收取License費用。
接下來對幾種方案適用的場景進行介紹。選擇云應(yīng)用方案一般涉及強烈的企業(yè)內(nèi)網(wǎng)互通(賬號、權(quán)限)和應(yīng)用兼容性訴求(2D、3D各種類型);選擇3D應(yīng)用實時渲染一般專注于3D渲染程序,如基于DirectX開發(fā)的3D展示應(yīng)用、游戲等;GPU硬件虛擬化/物理直通方案一般配合云應(yīng)用和3D應(yīng)用實時渲染使用。
以上技術(shù)的共同點是把3D應(yīng)用直接搬上云端進行計算,但單純的云渲染能否實現(xiàn)應(yīng)用不上云,僅渲染上云?
因此我們實現(xiàn)了一套基于云原生優(yōu)化的上云方案,即遠程渲染。它同時適用于Web、PC和移動端3D應(yīng)用程序。應(yīng)用程序?qū)嶋H在客戶端側(cè)運行,但渲染的計算被卸載,并通過遠程渲染SDK在云端完成渲染,最終畫面通過視頻編碼回傳給端側(cè)。
它的優(yōu)點是云端只承擔(dān)渲染職能,端側(cè)的算力可以完成其他邏輯的運算,結(jié)合客戶端實際情況還可以靈活選擇本地、云端或混合渲染。缺點是應(yīng)用需要基于遠程渲染SDK進行改造,并且無法滿足非常高的交互式實施場景需求(例如某些游戲)。
上圖展示了用戶使用遠程渲染服務(wù)的具體流程。在開通服務(wù)并創(chuàng)建云渲染會話后,由遠程SDK控制云端渲染,渲染后的畫面通過華為RTC服務(wù)回傳至客戶端進行顯示。
接下來對遠程渲染效果進行演示。傳統(tǒng)模式下,設(shè)計師需要通過離線渲染獲得效果圖后才能查看設(shè)計效果。利用華為云渲染,設(shè)計師可以實時查看設(shè)計效果,同時云端光追渲染可以更真實地還原現(xiàn)場光線環(huán)境。
那么渲染和云結(jié)合的具體優(yōu)勢是什么?和消費級顯卡相比,云數(shù)據(jù)中心使用的硬件價格十分昂貴,高昂的造價實際帶來了哪些利好呢?如上圖所示,如果將云看做一個大機器,可以發(fā)現(xiàn),云渲染支持同時服務(wù)于不同類型(手機、平板、主機等等)的多個用戶,并且可提供一個應(yīng)用能夠被多用戶使用的場景。它的硬件資源不綁定到用戶,而是由用戶使用時間決定。軟件也無需在本地進行安裝。
前面提到的幾種3D應(yīng)用上云方案本質(zhì)上只是將本地程序部署上云,云僅僅提供本地資源的替代,計算資源按連接來調(diào)度,不同的應(yīng)用間沒有共享。
華為云通過對自研渲染引擎進行多用戶接入改造實現(xiàn)了一些新的嘗試,使單引擎在相同場景下可以同時接入多個用戶,這種方式變相節(jié)省了部分場景加載的內(nèi)存和顯存,且用戶之間共享的計算可以節(jié)省CPU、GPU。作為充分發(fā)揮云優(yōu)勢的云原生方案,它與前述的幾種方案在本質(zhì)上完全不同。經(jīng)過實際測試,它可以提升0.5倍以上的效率。
-06-
工業(yè)圖形渲染實踐
接下來介紹我們在工業(yè)圖形渲染領(lǐng)域的一些實踐。工業(yè)圖形渲染引擎可能與大家日常接觸的渲染工作不同,它是計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助工程(CAE)、建筑信息建模(BIM)等工業(yè)設(shè)計軟件中的基礎(chǔ)技術(shù)組件,決定了3D設(shè)計對象的真實呈現(xiàn)、保證前端設(shè)計的正確性。
目前國內(nèi)缺乏自主研發(fā)的高質(zhì)量工業(yè)圖形渲染引擎,各大企業(yè)的自研引擎無法支持高質(zhì)量和大場景圖形渲染。業(yè)界較為出名的GPU渲染器基本都是國外的產(chǎn)品(如KeyShot和HOOP等)。
華為云在國家技術(shù)創(chuàng)新中心的支持下啟動了工業(yè)圖形渲染引擎研發(fā)項目,目標是歷經(jīng)2~3年的開發(fā),產(chǎn)出達到世界先進水平的渲染引擎,滿足CAD、CAE、CAM和EDA場景的工業(yè)圖形渲染需求。
上圖展示了我們自研工業(yè)渲染管線近期的實時渲染效果,目前它已和部分中國三維CAD廠商完成了集成對接,2024年將陸續(xù)實現(xiàn)與其他企業(yè)設(shè)計軟件的對接。
接下來對云端光追實時渲染進行展示,它側(cè)重呈現(xiàn)材質(zhì)、光影等效果。
-07-
AI加速渲染實踐
最后介紹華為云的AI加速離線渲染。我們原有的舊思路是通過自研渲染引擎來替代友商同類產(chǎn)品,由于生態(tài)壁壘過高,該思路并不可行。
現(xiàn)有離線渲染流程是客戶端應(yīng)用通過農(nóng)場服務(wù)、農(nóng)場調(diào)取器提交圖形數(shù)據(jù),確定計算節(jié)點并完成圖形渲染。由于過程中的光追計算消耗量很大,導(dǎo)致整體所需時間也很長。因此我們希望通過引入AI技術(shù)對渲染進行加速,通過農(nóng)場服務(wù)調(diào)整參數(shù)降低渲染的光追計算,從而降低純CG端的計算,再通過專有的AI模型對渲染過程性輸出CG數(shù)據(jù)進行AI推理計算。輸出效果可以達到同等質(zhì)量。
上圖展示了華為云AI加速渲染的輸出效果。可以看到,AI輸出與原生渲染圖在質(zhì)量上基本一致。
上圖展示了一個AI加速渲染影視番劇的實際案例。可以看到毛發(fā)等細節(jié)與原生渲染圖基本一致,并且質(zhì)量要求越高,提速效果越好。
接下來對我們的技術(shù)時間軸進行總結(jié)。2011年至今,我們的發(fā)展從2D渲染到自研3D空間云渲染,從GPU虛擬化到光追引擎和AI渲染加速,涉及的行業(yè)包括企業(yè)辦公、數(shù)字人、影視、云游戲、工業(yè)設(shè)計等等。
我們的研發(fā)團隊呈全球布局,依靠圖形領(lǐng)域全球知名高校和產(chǎn)業(yè)基地,持續(xù)深耕云原生圖形技術(shù),支持產(chǎn)業(yè)升級。
接下來對我們的自研離線渲染視頻進行演示,它主要面向家裝設(shè)計場景,光影真實性比實時渲染更強,每幀渲染僅需要5~10秒。
最后對我們的自研實時渲染進行視頻演示,它基于華為自研渲染引擎構(gòu)建。
本人認為渲染是技術(shù)也是工具,可以幫助用戶達成預(yù)期效果的呈現(xiàn),在此也希望與各位在座專家深入交流。我的分享就到這里,謝謝大家!
-
云計算
+關(guān)注
關(guān)注
39文章
7732瀏覽量
137195 -
人工智能
+關(guān)注
關(guān)注
1791文章
46845瀏覽量
237535 -
渲染
+關(guān)注
關(guān)注
0文章
69瀏覽量
10908 -
華為云
+關(guān)注
關(guān)注
3文章
2423瀏覽量
17308
原文標題:華為云渲染實踐
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論