實(shí)時(shí)渲染:實(shí)時(shí)、離線、云渲染的區(qū)別
三維渲染,也就是將3D模型轉(zhuǎn)換成2D圖像,并最終呈現(xiàn)在屏幕上的過程。渲染過程需要計(jì)算機(jī)消耗時(shí)間進(jìn)行運(yùn)算,不同的渲染分類也會用到不同的渲染引擎。雖然由于使用場景各不相同,引擎本身的渲染算法都有它自己的特點(diǎn)和優(yōu)勢,但是隨著硬件計(jì)算能力的發(fā)展,它們的界限也逐漸變得模糊。
常見的渲染類型有以下幾種:實(shí)時(shí)渲染、離線渲染、云渲染、混合渲染。
它們之間有相同點(diǎn)也有區(qū)別,這里便避免太多的專業(yè)性描述,用更淺顯易懂的方式來進(jìn)行解釋。
實(shí)時(shí)渲染(Real-time Rendering)
從字面的意思來看很容易理解到:就是我們要實(shí)時(shí)的看到渲染之后的3D物體或者場景的效果。一般的實(shí)時(shí)渲染場景都帶有很強(qiáng)的交互性,就比如最常見的3D游戲《王者榮耀》、《和平精英》,或者是一些帶交互的3D應(yīng)用,比如智慧城市、智慧園區(qū)的可視化項(xiàng)目等等。在實(shí)時(shí)渲染的場景中,這些應(yīng)用都會獨(dú)立運(yùn)行在電腦、手機(jī)上,通過本地的硬件能力完成實(shí)時(shí)渲染的過程。
?

離線渲染(Offline Rendering)
離線渲染這個(gè)從字面意思來理解,好像就是“斷網(wǎng)”之后再做渲染,但這種理解是不對的。
實(shí)際上,離線渲染跟實(shí)時(shí)渲染相對應(yīng),簡單來說就是我們不需要實(shí)時(shí)地看到渲染效果的場景。
這種場景最為常見的就是我們的三維效果圖。做過裝修的朋友應(yīng)該都知道,如果讓設(shè)計(jì)公司出具效果圖一般都是要收費(fèi)的(當(dāng)然,有些公司為了吸引客戶會免費(fèi)),而這其實(shí)就是在做離線渲染的工作。
那么,為什么不能實(shí)時(shí)地去渲染一張效果圖,反而要用上離線渲染的機(jī)制呢?那就要看最后的渲染效果到底要多高了。
實(shí)時(shí)渲染,雖然渲染速度快,可以實(shí)時(shí)生成渲染內(nèi)容,但是渲染的效果和真實(shí)度相對來說是會很高的。而離線渲染的場景,基本都是對渲染要求非常高的、甚至是完全真實(shí)的。
比如剛才提到的家裝效果圖,你可能不需要立刻看到渲染結(jié)果,但是如果看到的時(shí)候,發(fā)現(xiàn)效果不理想,可能就要換其他設(shè)計(jì)公司了。
另外一個(gè)比較常見的就是好萊塢影視大片、3D動畫等影視場景。他們都需要達(dá)到一個(gè)非常逼真的渲染效果甚至是完全真實(shí)的場景復(fù)現(xiàn),但是對實(shí)時(shí)性要求不太高。
所以,一般的好萊塢大片,尤其是特效格外高端的那種,拍攝完成后的制作周期都非常長。比如我們耳熟能詳?shù)摹栋⒎策_(dá)》,當(dāng)時(shí)動用40000顆CPU、104TB內(nèi)存、10G網(wǎng)絡(luò)帶寬,整整離線渲染了1個(gè)多月。
這時(shí)候應(yīng)該就會有朋友存在疑問了,怎么可能用到40000顆CPU來渲染呢?什么電腦能有這么多CPU?這恰恰就是離線渲染在概念上容易讓人誤解的地方:離線渲染大多數(shù)情況反而是在線的。
一般情況下,如果我們做三維家裝效果圖,是可以用自己本地的普通電腦進(jìn)行渲染成圖的,但是個(gè)人的電腦硬件配置一般都不會特別好。因此完成整套渲染計(jì)算的過程到最終出圖也是需要很長時(shí)間的,電腦硬件越好,時(shí)間也就越短。
如果是專業(yè)的設(shè)計(jì)團(tuán)隊(duì),肯定也是希望出圖效果好的同時(shí)時(shí)間也越短越好。
于是就出現(xiàn)了一種新的離線渲染形態(tài):渲染農(nóng)場。說到渲染農(nóng)場相信很多人都不陌生,它就是在云端買了很多渲染服務(wù)器,這些服務(wù)器可以搭建成千上萬顆CPU或者GPU的集群,來專門服務(wù)那些需要快速完成離線渲染的用戶。比如市面上好評度非常高的渲染農(nóng)場:渲染100。機(jī)器128G,單機(jī)和聯(lián)機(jī)渲染都支持。
這就是為什么《阿凡達(dá)》的渲染會用到那么多CPU的原因,當(dāng)然現(xiàn)在基本都是采用GPU來進(jìn)行渲染工作了。渲染農(nóng)場其實(shí)就是搭建了渲染服務(wù)器集群,這當(dāng)然就是在線的了。所以,渲染農(nóng)場是離線渲染場景中的一種渲染形式,但是實(shí)際上它也是在線的。
?

云渲染(Cloud Rendering)
這個(gè)從字面意義理解就是在云端完成渲染的意思。但是為什么上面講到渲染農(nóng)場的時(shí)候,并沒有特意強(qiáng)調(diào)它就是云渲染呢?
其實(shí)如果按照渲染發(fā)生的節(jié)點(diǎn)來說,渲染農(nóng)場這種離線渲染就是屬于云渲染范疇的。但是,我們通常對于云渲染的理解,一般都是在云端完成實(shí)時(shí)渲染的場景。上面我們提到的實(shí)時(shí)渲染大部分時(shí)候都是在我們自己本地的電腦或者手機(jī)上完成的,因此對于終端硬件的要求是比較高的,不然“卡頓”肯定是無法避免的。
云渲染的出現(xiàn)就是為了解決這個(gè)問題:讓硬件性能不太好的終端也可以實(shí)時(shí)的渲染效果不錯(cuò)的3D內(nèi)容。
云渲染的基本原理是,把所有的3D渲染工作都交給云端。渲染完成后,編碼成為視頻實(shí)時(shí)地傳送給我們的客戶端,客戶端就變成了一個(gè)視頻播放器,對視頻流進(jìn)行解碼和播放,這個(gè)過程中可以監(jiān)聽一些鼠標(biāo)和鍵盤操作,來完成交互功能。
這樣大量的三維數(shù)據(jù)和美術(shù)資源不用安裝到我們的手機(jī)或者電腦的客戶端,而是全部在云端完成渲染,客戶端只要具備看視頻的性能,就可以體驗(yàn)具有比較好渲染效果的3D應(yīng)用。對于大眾來說,手機(jī)設(shè)備不用特別高配,就可以體驗(yàn)效果很好的游戲,而且手機(jī)一般也不會發(fā)燙了。目前云渲染的場景也主要體現(xiàn)在游戲場景中,即云游戲。當(dāng)然還包括一些對渲染質(zhì)量要求比較高的3D可視化或者數(shù)字孿生項(xiàng)目。
?

說到這里,大家對于實(shí)時(shí)渲染,離線渲染和云渲染這三種不同的渲染形式,應(yīng)該都有基本的理解了。其實(shí)渲染本身就是一個(gè)數(shù)學(xué)算法在計(jì)算機(jī)上的運(yùn)算過程。它們都有各自的優(yōu)劣和使用場景:
01、實(shí)時(shí)渲染(實(shí)例:手游《王者榮耀》、《和平精英》)
追求渲染速度,要求比較強(qiáng)的交互體驗(yàn)。所以即便在客戶端硬件性能較高的情況下,也要做大量的數(shù)學(xué)算法優(yōu)化,在不是特別降低渲染效果的同時(shí),減少渲染時(shí)間,達(dá)到很好的實(shí)時(shí)性交互。
02、離線渲染(實(shí)例:電影《阿凡達(dá)》)
追求渲染質(zhì)量,不要求實(shí)時(shí)性和交互性。追求的是極致的渲染效果,達(dá)到以假亂真的體驗(yàn)。因此就用最極致最優(yōu)秀最貼近真實(shí)物理原理的渲染算法,來進(jìn)行真實(shí)度極高的渲染過程。通過渲染農(nóng)場的云端計(jì)算能力,盡量地減少渲染時(shí)間。
03、云渲染(實(shí)例:渲染農(nóng)場渲染100)
追求相對較高的渲染質(zhì)量同時(shí),也要達(dá)到實(shí)時(shí)性要求。所以云端算力的部署和調(diào)度的能力要求會更高,讓客戶端配置不高的用戶通過云渲染也能體會到不錯(cuò)的3D應(yīng)用。