在遊戲引擎中常用的光照模型有哪些?

了解到的光照模型有,lambertian model 漫反射模型,toon shading 卡通渲染,blinn-phong 模型,鏡面材質。有兩個疑問:

1. 除了這些之外,遊戲引擎里常用的還有哪些光照模型,有沒有哪本書可以系統的學習一下。

2. 光照模型和現在常用的一些渲染技術,比如ray tracing,還有unity5中新加的PBR,physically-based rendering是什麼關係,這些技術又有沒有書可以系統的學習一下。


我來打個廣告。。

基於物理著色(一)- Behind the Pixels - 知乎專欄

基於物理著色(二)- Microfacet材質和多層材質 - Behind the Pixels - 知乎專欄

基於物理著色(三)- Disney和UE4的實現 - Behind the Pixels - 知乎專欄


toon shading不是光照模型。

還有個常用的是cook-torrance。你搜BRDF就都能找到了。

PBR和ray tracing沒關係。


分別回答你的幾個問題:

1. 引擎中常用的光照模型有phong,lambert,brdf等等。在學習光照模型時,建議先了解一下ambient color, diffuse color, specular color, envirnment color,以及不同的光源,如spot light, point light, direcional light。。包括shadow常用的計算方式等等,有時間的話可以看一下dx的sdk。

2. toon shading不是一種光照模型,而是一種non-photorealistic rendering。

3. physically-based rendering vs ray tracing

pbr是遵循光的物理特性,儘可能的去模擬它,這個過程中會取一些近似。理想狀態是,我們了解這些近似最終會給結果帶來什麼樣的偏差。

ray tracing,尤其是在它發展的早期,更多時候是為了使最終結果更接近於現實而進行的一些模擬和調參,它並非要完全符合光的物理特性。因此我們去看一個ray tracing渲染器是否是physically-based時,還是要看它所取用的模型是否符合物理特性,不能籠統的下一個結論。

有兩本原版書推薦:


在不同paper中找公式很麻煩,我就把常用的光照公式總結下放在一起,主要pbr相關的。https://zhuanlan.zhihu.com/p/26249528


渲染基本分兩大類:

模擬照片效果 和 npr

但是兩者之間也是互相影響 融合的

又可以分類為 實時和非實時

當然 晶元性能提升,非實時也能變實時

光照模型,局部和全局光照模型

當然兩個模型也是可以融合的

光線追蹤 是非實時 pr 的全局光技術

遊戲裡面要用的是 實時技術

例如掃描線 ,有點光線追蹤味道的,簡單的渲染3d 場景方法,可以實時

光學方程 就是描述一種光照模型,因此光學方程 分為 局部和全局

渲染問題,本質是確定了一種風格,例如照片級,日本漫畫,美國海報,中國水墨,然後嘗試使用各種技術,達成這種模擬。

而這一切都是和光,材質在打交道。

研究就是光如何和材質交互的問題


推薦閱讀:

3D 渲染中使用 Accumulation Buffer 實現景深(Depth of Field)效果?
如何評價國產3D動畫《墓王之王》?
如何在WPF程序中調試C++ dll?
keyshot渲染燈具怎麼才能做到光線自然發出?
如何評價酷家樂?

TAG:遊戲引擎 | 圖形圖像 | 3D渲染 |