• 沒有找到結果。

非即時繪製(pre-rendering)指利用前製運算所產生的影像,而非即時於硬體 運算產生的影像。以基於物理的光線追蹤(ray tracing)產生影像,概念如圖 2.1,

從投影平面的每個像素點(pixel)產生光線,對場景中的每個物體作交點測試。

若光線與物體相交,則根據物體的位置決定是否位於陰影處,並且,依物體的材 質作出折、反射反應,產生第二條光線進行下一層的追蹤。由於每個光源都會發 出無數條光線作追蹤,所以,非即時繪製的主要缺點在於要付出許多時間進行運 算。

5

圖 2.1 光線追蹤示意圖 [14]

針對室內設計選擇光線追蹤的非即時繪製法原因是:光線追蹤對於光影效果 的優秀表現,以及對於材質表現的高細緻度。以下就幾個層面討論光線追蹤與普 遍應用於即時運算的光柵化(rasterization)方法的差異。在陰影的計算上,採用 光柵化的非即時繪製基本概念以陰影貼圖(shadow mapping)呈現,會產生鋸齒

(aliasing)的問題。如圖 2.2,左圖於角色眼睛下方的陰影處,邊緣有嚴重的鋸 齒。為改進陰影瑕疵問題,光柵化衍伸出像是:百分比漸進過濾(percentage closer filtering)、層疊陰影貼圖(cascaded shadow map)等多種方法。百分比漸進過濾指 每當對陰影貼圖進行一次採樣時,就對相鄰的圖素(texel)進行採樣,對相鄰圖 素全部進行比較,並將比較結果作線性過濾後回傳一個介於0 與 1 之間的浮點數。

透過百分比漸進過濾的方法使得陰影邊界變圓滑,但在與光源夾角較小的平面之 處仍可見出現陰影貼圖的圖素的條紋問題。層疊陰影貼圖作法將相機的可視範圍 從近到遠分割成多個子視錐,每個視錐繪製一張陰影貼圖,讓近處陰影比遠處陰 影精細。但是,當場景越大,貼圖越多就越會造成記憶體空間的浪費。相較於光 柵化的方法,以物理性質作為實作概念的光線追蹤加上反鋸齒(anit-aliasing)效

6

果如圖 2.2 中間的圖,得到相對圓滑的陰影,右圖為光線追蹤加上柔和陰影(soft shadow)讓陰影更柔和、自然。在折、反射效果上,光柵化以環境貼圖(environment mapping)作反射,這種計算方法在近處無法達到相互反射(interreflection)。如圖 2.2,左圖環境貼圖對於近處並未作出反射,右圖為光線追蹤根據物理性質的相互 反射效果。運算更為複雜的折射,光柵化目前還難以呈現出精準的效果,相較之 下,光線追蹤略勝一籌。

圖 2.2 陰影示意圖(左)環境貼圖(中)光線追蹤(右)柔和陰影 [15]

圖 2.3 折射效果示意圖(左)光柵化(右)光線追蹤 [3]

7

在照明效果方面,光柵化欲實現空間中的照明效果可用光傳遞體積(light propagation volume)此類方法實現,此方法為不需要預先計算的動態全域照明演 算法,在體積數據中計算傳播。此方法的缺點為性能較慢,欲在虛擬實境中達到 完全擬真的互動應用,必須詳加考慮畫面更新以及即時運算的延遲問題。光線追 蹤的部分是以光子的概念模擬照明。在真實世界中,光源發散出光子(photon)

於空間中運行。當物體接受到來自光源發出的光線,與光子碰撞會形成直接照明

(direct illumination)。光子與場景中不同材質的物體表面碰撞,隨著折、反射繼 續彈跳。隨著光子反彈碰撞,光子會吸收所碰撞物體的材質資訊,繼續進行彈跳 直至能量減弱消失為止。這樣的情況稱為間接照明(indirect illumination)。例如:

鏡面反射光或漫射光皆屬於此。因為場景中有許多光子重複進行碰撞而產生相互 照明的效果,最後整個場景佈滿光子,呈現均勻明亮的整體效果,稱為全域照明

(global illumination)。如圖 2.4,左圖為直接照明,右圖的全域照明使得空間更 為明亮,且具有色彩滲透(color bleeding)的效果。因為全域照明提供大範圍的 整體照明,適合室內設計模擬自然採光。

圖 2.4 光照示意圖(左)直接照明(右)全域照明 [16]

8

除了近乎真實的影像細緻度,非即時繪製通常用於較高規格,且具有高複雜 度場景的情況下。預先計算允許場景中具有多種物體、燈光,以及材質等數量較 多的多邊形。應用於虛擬實境中,每個畫面皆可預測。透過前製運算,可以輕易 達到建議的畫面更新率,減少因為畫面顯示延遲所造成的不適感。

相關文件