真實感繪製的目的是建立乙個與真實的場景不可區分的三維場景的影象,在我們描述渲染過程之前,重要的是要理解「不可區分」這個詞是不準確的,因為它涉及到觀察者,不同的觀察者對於同乙個影象的感知也會不相同。雖然我們將在書中介紹一些感性問題,但要精確的表現觀測者的感性認知是乙個非常困難且很難解決的問題。在大多數情況下,我們依靠對顯示技術的理解,以及對物理的光照和對其互動進行精確的模擬而感到滿意的情況下,來對觀察者展現最可能的真實的影象。
幾乎所有的真實感繪製系統都是基於光線跟蹤演算法的。實際上,光線追蹤是乙個非常簡單的演算法;它是基於光線穿過場景的路徑,並與環境中物體相互作用並反射出物體。儘管有許多方法可以編寫光線追蹤器,但所有這樣的系統都至少模擬了以下幾個物件和現象:
1. 相機;相機模型決定了如何和從什麼場景觀察,包含了場景中影象是如何記錄在感測器上。許多渲染系統在相機開始,生成觀察光線,並在場景中進行跟蹤。
2. 光線與物體互動;在給定的幾何物體模型上,我們必須能夠準確地知道光線到達發生互動的點。除此之外,還需要確定在物體互動點的一些物體的屬性資訊,如曲面法線或者物體材質。大多數光線追蹤器還具有一些測試光線與多個物體交點的功能,通常是返回光線路徑上最近的互動點。
3. 光源;如果沒有光照,就沒有必要渲染乙個場景了。光線追蹤器必須模擬場景中光的分布,不僅僅包含光源位置,同樣包括在空間中光的能量是如何分布的。
4. 能見距離;為了知道在給定的光的條件下,表面某一點上被吸收的能量,我們必須知道從點到光源是否有一條不間斷的路徑。幸運的是,這個問題在光線追蹤器中很容易解決,因為我們可以從表面構造光線,找到最接近的光線物體的交叉點,並比較交叉距離與光程。
5. 表面散射;每乙個物體都可以對其表面形態進行表示,包含光與物體表面互動的資訊,同樣包含輻射(或者散射)光的本質。表面散射模型通常被引數化,這樣就可以模仿更多的外觀表現。
6. 間接光傳輸;由於光可以通過反射或者通過其他表面到達物體表面,追蹤表面額外的光源可以完整的獲取光的影響。
7.射線傳播規律 ;我們需要知道當光通過表面時,光沿射線傳播會發生什麼樣的變化。假如在真空中渲染乙個場景,光的能量在延射線傳播時是保持不變的。當然在地球上,真空環境是特定場景下才會有的,但它與許多其他的環境條件下是非常合理接近的。更複雜的模型可以在對霧、煙、地球空氣等條件下的射線進行跟蹤。
在本節中,我們將簡要討論每乙個模擬任務。在下一節,隨著通過主渲染迴圈對單射線的處理,我們將展示pbrt在底層**元件與高層的介面。我們也展示基於turner whitted的原始跟蹤演算法的表面散射模型的實現。
注:本文譯自pbrt第三版。
真實感場景繪製(附原始碼)
首先給出繪製效果圖 說明 本系統繪製了乙個真實感的三維場景,並實現場景漫遊。使用按鍵 或w s a d控制運動方向,pgdn和pgup可以改變觀察者的高度,滑鼠控制轉向,按鍵 f 可以開啟和關閉 霧氣 esc退出程式。本場景中繪製了牆壁與地面 天空 石柱 箱子 玻璃球 雪人 霧等物件,下面將依次分析...
非真實感渲染
非真實感渲染的定義 就是使用一些渲染方法使得畫面達到某些特殊的繪畫風格相似的效果,簡稱npr。渲染輪廓線的方式 常見渲染方式如下 1.基於觀察角度和表面法線的輪廓線渲染 這種方法就是使用視角方向和法線方向的點乘結果來得到輪廓資訊。但是很多模型渲染出來的描邊效果卻不盡人意,而且也不能控制輪廓線風格的渲...
learnopencv非真實感渲染
邊緣保留過濾器 edgepreservingfilter 輸出3通道影象 recurs filter 遞迴過濾 1,normconv filter 歸一化卷積 2。使用recurs filter選項的速度比normconv filter快3.5倍。當不需要銳化並且速度很重要時,應使用recurs f...