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