影視渲染和遊戲渲染的區別?


最本質的區別就是:電影你可以花幾個小時、幾天、倆禮拜渲染一幀,只要放映給觀眾的時候連續放就可以。而對於遊戲,當你運行的時候,玩家就坐在旁邊,你必須要在二三十毫秒里完成這一幀。

具體到演算法上,非實時渲染就可以使用各種遍歷場景圖的演算法,複雜度可以是n方(或者場景某個部分的n方),於是可以產生很逼真的光影效果。而實時渲染就不能得到這些:當你渲染某個東西的時候,你通常只能訪問這個東西自己,和一些貼圖,也許還有屏幕緩衝區。這種東西光影效果就會差很多。


遊戲里其實也用到影視的渲染,準確的說法是預渲染。所有遊戲播片都是預渲染。遊戲實際畫面叫即時演算。

1 技術上的差異其實沒有傳說的那麼大,預渲染動畫無論電影還是遊戲都是以光柵化為主,普及光線追蹤是進行時,但是目前仍然不是主力渲染方式。

2 遊戲有個死線,就是每秒30幀。預渲染的速度可能每10分鐘1幀,也可能每秒10幀,這當中可差了6000倍!但是對於遊戲來說,毫無區別,都是用不了。因此遊戲首先考慮速度,然後才考慮畫面質量,而預渲染正好相反。

3 遊戲預渲染和電影預渲染也有點區別,遊戲的解析度一般都不會超過當時主流的電視水平,而電影沒有2000線就別玩了。


離線和實時的區別


平台不同。影視渲染使用工業級工作站集群,遊戲渲染一般只在PC上實現。

計算負載不同。

耗時不同。

最重要的還是引擎技術不同。

遊戲渲染一般使用預優化的模型和材質壓縮技術,簡單的局部光源。

影視渲染力求真實而使用全局光源,並對粒子效果,流體效果進行實時演算。


遊戲渲染屬於real time rendering範疇,如果渲染時間過長,幀數不夠,則會大大影響遊戲性。


推薦閱讀:

斐波那契數列 費馬螺旋 如何在AI畫出向日葵生長規律圖形?
遊戲里的萬人同屏是如何優化?
你如何看待 Google 推出的新圖形渲染技術 Seurat?
如何繪製隱式方程?
如何評價OpenGL 4.6?

TAG:計算機圖形學 |