區域性照明(Local Illumination)

這段時間比較忙,距離上一次更新已經有些時日了。

本來想接著寫九的,但是發現後面的內容其實也不多了,就直接接著去了。

通常來說,為了找到一些廉價的光照解決方案,我們需要近似估算Light emitter、BRDF。重要的是在感知框架中評估最終的著色結果,瞭解最終影象中的哪些元素最為重要,從而為這些元素付出更多的努力。

區域光 (Area Light Source)

這裡拿實際商用中的引擎來舉例。

區域光可以當作攝影用的柔光燈(天花板、背光燈),大部分情況下,我們看到的Area Light都是矩形的,例如Unity中的Area Light (baked only)。

可是在實際應用中(這裡特指遊戲開發),我們可能比較少用到這類光源。由於在實現中,Area Light的實現更加昂貴,所以我們實際上更多使用條件主要是基於baked的。所以我們不必太過關注它的效能問題。

《RTR4th》(總結 十)

環境光 (Environment Lighting)

毫無疑問,Ambient Light是最簡單的Environment Lighting模型。其輻射亮度不隨方向變化且具有一個恆定值。甚至這種Environment Lighting的基本模型也可以顯著的改善視覺質量。不考慮光線回彈的場景看起來非常不真實,在這樣的場景裡面,它的陰影或者背離光線的物體基本上是完全漆黑的。但是這跟我們實際觀察的效應並不相符——物體可能會受到間接光的影響。

《RTR4th》(總結 十)

光的確切影響取決於BRDF,對於Lambertian表面,無論表面法線

n

與視線方向

v

如何,固定的輻射亮度

L_A

對於輸出輻射亮度的貢獻都是恆定的。

L_{o}(v)=\frac{\rho_{ss}}{\pi}L_A\int_{I\in\Omega}^{}(n·l)dl=\rho_{ss}L_A.\tag{10.14}

在著色時,這種恆定的出射輻射亮度貢獻被新增到來自直接光源的貢獻。 對於任意BRDFs的方程等式:

L_{o}(v)=L_A\int_{I\in\Omega}^{}f(l,v)(n·l)dl.\tag{10.15}

而在以往我們的real-time rendering應用中,一般我們都假定反照率R(v)是一個常量,即認為ambient color

C_{ambient}

是一個常量,即我們常用的Ambient light的著色方程。

L_{o}=C_{ambient}L_A\tag{10.15+}

球面與半球函式 (Spherical and Hemispherical Functions)

為了將Environment lighting擴充套件到常量項之外,我們需要有一種方法可以表示從任意方向到物體的入射輻射亮度。

在Lambertian表面,對於儘可能多的每個表面方向,透過儲存預計算的輻射照度函式,可以透過球形函式來計算Environment lighting。

簡單表格格式 (Simple Tabulated Forms)

環境立方體 Ambient cube

球形基 Spherical Bases

透過擬合來近似任意給定的函式。

球面徑向基函式(Spherical Radial Basis Functions)

球面高斯(Spherical Gaussians)

球諧波(Spherical Harmonics)

其他球形表示

半球基 Hemispherical Bases

環境(Ambient)

/

高光(Highlight)

/

方向(Direction)

光能傳遞法線貼圖(Radiosity Normal Mapping)

/

Half-Life 2(Game) Basis

半球諧波(Hemispherical Harmonics)

/

H-Basis

環境貼圖 (Environment Mapping)

在一個或多個影象中記錄球形函式稱為環境貼圖(Environment Mapping),我們通常使用紋理對映來實現表的查詢。這種表現形式是最強大以及最受歡迎的環境照明的形式之一。比之於其他的球形函式,它消耗的記憶體會更多,但實時解碼非常簡單而且快速。此外,它可以表達任意高頻的球形訊號(透過增加紋理的解析度),也可以準確的捕獲任何環境的輻射亮度的範圍(透過增加每個顏色通道的bits),當然,越完美的表達,意味著在其他方面付出了越大的代價,比如解析度導致記憶體膨脹,bits的增多意味著可能降低訪問速度。

經度-緯度貼圖 (Latitude-Longitude Mapping)

球體貼圖(Sphere Mapping)

立方體貼圖(Cube Mapping)

其他投影

基於鏡面影象的光照 (Specular Image-Based Lighting)

雖然Environment Mapping最初是作為渲染映象表面的技術開發的,但它也可以擴充套件為光澤反射,當把這種技術用於模擬無限遠的一般鏡面反射效果時,Environment maps就成了鏡面光探測器 (Specular light probes)。

預過濾環境貼圖 (Prefiltered Environment Mapping)

微面元BRDFs的分積分近似 (Split-Integral Approximation for Microfacet BRDFs)

非對稱及各向異性葉 (Asymmetric and Anisotropic Lobes)

輻射照度環境貼圖 (Irradiance Environment Mapping)

鏡面反射的環境貼圖具有一些共同的屬性,無論它們是未過濾的還是用於鏡面反射,或者它們被過濾並用於光澤反射。 在這兩種情況下,鏡面反射環境貼圖都使用反射的檢視向量進行索引,並且它們包含輻射亮度值。 未過濾的環境貼圖包含入射的輻射亮度值,過濾的環境貼圖包含出射的輻射亮度值。

相比之下,漫反射的Environment maps僅用表面法線

n

進行索引,並且他們包含輻射照度度。因此,叫做輻射照度環境貼圖。

球諧函式輻射照度(Spherical Harmonics Irradiance)

其他表示法