實時渲染和離線渲染的區別

作者:hecoos全案設計
鏈接:https://www.zhihu.com/question/362659434/answer/948073644
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。


如果要比較我們常說的實時渲染與離線渲染,就應當首先了解一下計算機的渲染(render)概念。

通俗講,渲染是處理器將需要計算的畫面信息,計算並“繪製”在顯示屏幕上的過程。甚至從“DOS”系統開始,處理器就會將計算好的字母或者數字用像素的方式表現在顯示屏幕上,這時候渲染的概念已然存在了。

後來,隨着顯示技術的進步,社會的發展,對畫面的要求就不再是簡單的“像素點拼湊”了,渲染技術也慢慢地出現了兩條主流分支,一種用於互動遊戲,另一種是用於影視技術。像遊戲這類需要實時互動的程序,就需要實時顯示畫面;而作爲影視技術而言,需要的則是精緻畫面的效果。

從計算機圖形學(Computer Graphics)學科角度講,兩種渲染方式都是將已經計算好的數據圖像化。離線渲染經典實現方式爲CPU將需要渲染的文件先從硬盤讀取到內存,再讀取到CPU完成對數據的計算,計算後的數據爲圖像數據,通過視頻編碼格式(如H.264)壓縮,最終成爲我們可以在電腦上播放的影片。實時渲染經典的實現方式爲CPU將需要渲染的文件先從硬盤讀取到內存,再讀取到CPU完成對數據的計算,通過PCIe(peripheral component interconnect express)接口傳輸到顯卡,顯卡將這類數據圖形(graphic)化,通過顯卡(GPU)強大的運算能力,直接輸出畫面到顯示設備。

時至今日,這兩條應用分支仍然存在,且這兩類產業的原始需求仍然沒有改變:“實時”與“效果實現”,我們將可以滿足這兩類需求的渲染技術命名爲:“實時渲染”與“離線渲染”。

兩種技術相比較起來,離線渲染得到的是更加精細的畫面效果,代價是花費更長的時間,而實時渲染爲了達到隨時調整隨時看到畫面目的,犧牲了畫面的精細度。根據往常的經驗,離線渲染主要依託於中央處理器(CPU)的計算能力,實時渲染主要依託於圖形處理器(GPU)的計算能力。但是這一規律隨着硬件技術(更優的納米工藝)及軟件技術(功能更強的驅動及算法)的進步而逐漸變得模糊。如今,在渲染過程中,不會再依賴於單一處理器的計算能力,計算機中的越來越多的性能會被調用。同時計算機本身的性能也在不斷提升,多硬件之間協同渲染的方式也逐漸成爲當下的主流技術。

從應用層面來講,絕大部分遊戲畫面都是實時渲染的,因爲在遊戲中往往不需要過度複雜的光影反射畫面以及材質紋理細節。而大部分CG動畫(Computer Graphics)是通過離線渲染最終呈現的,因爲動畫往往是畫面精細的,光影效果是接近真實的,尤其光線反射(效果較好的CG動畫渲染往往會設置極高數量的採樣值)。Autodesk Maya、3D Studio Max就是兩款離線渲染軟件的代表作。但是隨着硬件技術的進步,遊戲引擎的推陳出新,實時渲染與離線渲染所能生成的畫面內容之間的界限也漸漸變得模糊,現在通過實時渲染也能製作出相對精細的畫面了,比如說使用虛幻4引擎(Unreal Engine 4)這款軟件。

從時間方面來講,實時渲染是需要實時觀看畫面的,計算機從計算繪製一幅圖像(一幀畫面)到輸出畫面到顯示器,僅需要1/30秒左右。對應的離線渲染,由於需要較高的畫面效果以及粒子特效,其畫面的生成可能需要幾分鐘到幾天時間才能得到一幅圖像(一幀畫面)。



本文分享自微信公衆號 - WebHub(myWebHub)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章