標籤:

「知乎知識庫」— 3D 渲染

「知乎知識庫」— 3D 渲染

概述

3D 渲染是通過電腦計算的方式把模型從 3D 模型網格呈現出 2D 真實感高的圖像,計算過程包含光線及輔助光線,材料的材質和紋理,相機相關設置等綜合變數。

3D 渲染的分類

3D 實時渲染

實時渲染主要應用在遊戲領域,電腦會實時的計算和展示所渲染的結果,幀率在 20-120 頻率左右。因此需要在幀率一定的情況下最大化的展示真實性。計算機在圖像處理的過程中會用到一些」技巧「是肉眼感官為」真實「世界,這些」技巧「都包括鏡頭光暈(lends flare),景深(depth of field)和動態模糊(motion blur)。計算機的算力決定了渲染的真實感,通常需要 GPU 來協助完成。

3D 非實時渲染

3D 非實時渲染通常是電影或視頻,藉助計算機有限的算力,通過延長渲染時間達到更加真實的效果。射線追蹤(ray tracing)和輻射度演算法(radiosity)是非實時渲染常用的技巧,以達到更加真實的感覺。隨著技術的發展,不同種類的物質形式有了更精確的計算技巧,例如粒子系統(模擬雨,煙和火),容積取樣(模擬霧,灰塵),以及焦散性質和子面散射(subsurface scattering)。渲染過程中不同層的物質是分開計算後合成為一個最終布景。

與渲染相關的光學原理

渲染所做的事情都是為了讓結果看起來更像是真實的景象,而真實世界的光和材質都是由物理原理所決定的,因此,渲染中所運用的一些演算法,都是為了模擬真實世界的物理原理。

全局照明 (Global Illumination)

除了 3D 布景中的設置的基礎照明外,全局照明考慮到不同物質之間反射的光,疊加計算到渲染過程中,使之更加真實。

射線追蹤(Ray Tracing)

在渲染過程中,我們是通過相機這個媒介定位到與 3D 布景中物體的關係的(下面的篇幅會重點介紹這個)。因此「相機」是我們的眼睛的位置。類似現實世界中我們看到物體是因為光打到物體上,然後反射到我們的眼睛裡,射線追蹤是與此反向的倒推過程。由圖所示,Camera 發射的光線 View Ray 通過屏幕的像素點(每一個像素點均得到計算)打到 3D 布景的物質 Scene Object 上,通過計算物質的反射指數反推回光源 Light Source , 這樣每個像素點都可以得到一個計算結果,以展示所在位置的相關視覺信息。

馮氏著色(Phone Shading)

在光照模型中,主要由三部分組成:環境光(ambient),漫反射(diffuse),鏡面反射(specular)。不同的材質會根據光的不同而呈現出不同的視覺信息。

I_{Phong} = k_{a}I_{a} + k_{d}(n·l)I_{d} + k_{s}(r·v)^{a}I_{s}

其中下標 a 表示環境光(Ambient Light),下標 d 表示漫射光(Diffuse Light),下標 s 表示高光(Specular Light), k 表示反射係數或者材質顏色, I 表示光的顏色或者亮度, a 可以模擬表面粗糙程度,值越小越粗糙,越大越光滑。

物體材質和紋理 (Object Texture)

出自Maxwell官網

和渲染相關的物理性質包括液體的稠度,對光的折射度以及反射度,材料本身的厚度,表層的紋理粗糙度等等,這些參數影響了光的走向以及強弱,使計算變得多維。BRDF(雙向反射分布函數)就是用於描述入射光和經過物體反射及折射後光的關係。

f(l,v) = frac{dL_{0}(v)}{dE_{l}}

其中 f 就是 BRDF, l 是入射光方向, v 是觀察方向,也就是我們關心的反射光方向。

dL_{0}(v) 是表面反射到 v 方向的反射光的微分輻射率。表面反射到 v 方向的反射光的輻射率為

L_{0}(v) ,來自於表面上半球所有方向的入射光線的貢獻,而微分輻射率 dL_{o}(v) 特指來自方向

l 的入射光貢獻的反射輻射率。

dE(l) 是表面上來自入射光方向 l 的微分輻照度。表面接收到的輻照度為E ,來自上半球所有方向的入射光線的貢獻,而微分輻照度 dE(l) 特指來自於方向 l 的入射光。

有的時候,物體會有多層物質(Multi-Layered Material)的疊加,例如汽車的外殼是金屬合成物,而表面透明的漆又疊加在金屬之上。這其中計算較為複雜,這裡不多介紹。

攝影相關參數

3D 布景中相機的設置如同現實世界中的攝影,因此和攝影的參數完全一致。我們需要根據光的亮度以及我們想要的效果,來設置這台「相機」。常用的參數包括焦距(Focal Length)感光度 ISO,光圈(Aperture,相關參數設置為 f-stop)和快門速度(Shutter Speed)。這些設置主要由所攝對象決定;例如 3D 渲染的物品為靜物(1-5 米內)時,設置為中長焦鏡頭(80-150mm)以及大光圈以達空間縱深感。如果是室內裝修渲染則常用廣角鏡頭(24-50mm)以及小光圈來減少背景虛化。

VRay for 3ds Max [6]

圖中相機的位置,和物體的關係,以及焦點都在Viewport中有展示;右下角的圖是相機拍出來的真實效果。

參考資料

[1] 3Drendering,wikipedia

[2] Ray_tracing_(graphics),wikipedia

[3] https://blog.csdn.net/u010345749/article/details/74160114, csdn

[4] Phong_shading,wikipedia

[5] Global_illumination,wikipedia

[6] Tutorial No.51 : Understanding Depth Of Field in V-Ray and 3ds Max,youtube


推薦閱讀:

【知識庫】陳瑞華:行政證據、技術偵查材料的刑事證據資格
知乎專欄《金毛犬知識庫》徵稿說明
女貞子 - 意古中醫·中醫在線知識庫
蛇莓 - 意古中醫·中醫在線知識庫
丹參 - 意古中醫·中醫在線知識庫

TAG:知識庫 |