2009-04-22 70 views

回答

39

啊!這些答案是非常不瞭解的!

當然,這不能幫助這個問題是不準確的。

好吧,「渲染」是一個非常廣泛的話題。渲染過程中的一個問題是攝像機的可見性或「隱藏表面算法」 - 確定每個像素中看到的是什麼物體。有各種可見性算法的分類。這就是可能是海報問的是什麼(因爲他們認爲它是「光柵化」和「光線追蹤」之間的二分法)。

ACF計算機調查1974年,Sutherland等人的「A Characterization of Ten Hidden-Surface Algorithms」一書中經典的(雖然現在有些過時)了。它非常過時,但它仍然非常適合提供思考對這些算法進行分類。一類隱藏表面算法涉及「光線投射」,它計算從相機到每個像素的線與對象(可以有各種表示,包括三角形,代數曲面,NURBS等)的交點。 。其他類的隱藏表面算法包括「z緩衝區」,「掃描線技術」,「列表優先級算法」等等。在沒有多少計算週期和沒有足夠內存來存儲z緩衝區的日子裏,他們對算法的創造力相當沉重。現在,計算和內存都很便宜,所以三種技術已經非常成功:(1)將所有內容切分爲三角形並使用z緩衝區; (2)射線鑄造; (3)使用擴展的z緩衝區來處理透明度等的Reyes-like算法。現代顯卡做#1;高端軟件渲染通常會執行#2或#3或其組合。雖然已經提出了各種光線追蹤硬件,並且有時構建但是從未被捕捉過,並且現在的GPU現在已經足夠可編程以實際上進行光線追蹤,儘管其速度嚴格不利於其硬編碼光柵化技術。多年來,其他更具異國情調的算法大都落在了旁邊。 (雖然各種排序/濺射算法可用於體繪製或其他特殊用途)。

「光柵化」的確僅僅意味着「確定一個物體位於哪個像素上」。公約規定它不包括光線追蹤,但這是不穩定的。我想你可以證明光柵化回答「哪個像素做這種形狀重疊」,而光線追蹤回答「哪個對象在這個像素後面」,如果你看到不同。

然後,隱藏表面去除不是「渲染」領域中唯一需要解決的問題。知道每個像素中可見的物體只是一個開始;你還需要知道它是什麼顏色,這意味着有一些計算光線在場景周圍傳播的方法。有一大堆技術,通常分解爲處理陰影,反射和「全局照明」(即在物體之間反射,而不是直接來自光源)。

「光線追蹤」指的是應用光線投射技術來確定陰影,反射,全局照明等的可見性。可以對任何事物使用光線追蹤,或使用各種光柵化方法進行相機可視性和光線追蹤陰影,反射和GI。 「光子映射」和「路徑追蹤」是計算某些種類光線傳播的技術(使用光線追蹤,所以說它們基本上是一種不同的渲染技術是錯誤的)。也有不使用光線追蹤的全局照明技術,例如「光能傳遞」方法(這是一種解決全球光傳播的有限元方法,但在該領域的大部分領域最近已經失寵)。但是使用光能傳遞或光子映射進行光傳播STILL要求您以某種方式製作最終圖片,通常採用其中一種標準技術(光線投射,z緩衝/光柵化等)。

提到特定形狀表示(NURBS,體積,三角形)的人也有點困惑。這是光線跟蹤與光柵化的正交問題。例如,你可以直接跟蹤nurbs,或者你可以將nurbs切成三角形並追蹤它們。您可以直接將三角形柵格化爲z緩衝區,但也可以按掃描線順序直接柵格化高階參數曲面(c.f. Lane/Carpenter/etc CACM 1980)。

1

維基百科上的渲染文章涵蓋各種techniques

介紹文字:

許多渲染算法已經 研究,並用於 渲染軟件可以使用許多 不同的技術來獲得最終 圖像。

追蹤場景中的每一縷光線 是不切實際的,並且會花費大量的時間 。即使跟蹤 一個足夠大的部分以產生 圖像,如果採樣不是 的智能限制,則會花費過多的 時間。

因此, 更高效的光傳輸 建模技術4個寬鬆的家庭已經出現了: 光柵化,包括掃描線 渲染,幾何項目現場 對象的圖像 平面,沒有先進的光學 效應; 射線鑄造考慮作爲從特定 點的視圖,計算使用蒙特卡羅技術僅基於幾何 和 反射強度的非常基本的光學定律,也許 的 觀察圖像,以減少 觀察 場景文物; 輻射度使用有限元 元素數學來模擬 表面的光漫射傳播 表面;和光線跟蹤類似於 到光線投射,但是採用更先進 光學模擬,和 通常使用蒙特卡洛技術來獲得 在 速度往往是 量值慢訂單更逼真的結果。

最先進的軟件結合了兩種或更多的技術,以合理的 成本獲得 足夠好的結果。

另一個區別是圖像 順序算法,其遍歷 像素的圖像平面的,和對象 順序算法,遍歷場景中的過 對象之間。一般對象 的訂單效率更高,因爲 通常情況下場景中的對象數量少於 像素。

從這些描述中,只有radiosity在概念上與我有所不同。

3

有一種叫做photon mapping的技術,它實際上與光線追蹤非常相似,但在複雜的場景中提供了各種優點。事實上,這是唯一可以提供真實(即所有光學規律都遵守)的方法(至少我知道),如果做得好的話。這是一種技巧,據我所知,它的使用很少,因爲它的性能甚至比光線追蹤還差得多(因爲它有效地做了相反的處理並模擬光源從光源到相機的路徑) - 但這是它的唯一的缺點。這當然是一個有趣的算法,儘管直到射線追蹤之後(如果有的話)你都不會在廣泛的使用中看到它。

+1

請注意,像光線追蹤一樣,此方法不需要多邊形。例如,可以完美地表示球體。實際上,無論如何,使用多邊形建模最複雜的對象是最容易的。 – Noldorin 2009-04-22 23:09:37

+1

球體也可以在光線追蹤中完美呈現。 – 2009-04-23 05:12:41