RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

光線投射,光線追蹤與路徑追蹤的概念與區(qū)別

Dbwd_Imgtec ? 來源:未知 ? 作者:李倩 ? 2018-04-19 14:59 ? 次閱讀

光線投射 Ray Casting [1968]

光線投射(Ray Casting),作為光線追蹤算法中的第一步,其理念起源于1968年,由Arthur Appel在一篇名為《 Some techniques for shading machine rendering of solids》的文章中提出。其具體思路是從每一個像素射出一條射線,然后找到最接近的物體擋住射線的路徑,而視平面上每個像素的顏色取決于從可見光表面產(chǎn)生的亮度。

光線投射:每像素從眼睛投射射線到場景

光線追蹤 Ray Tracing [1979]

1979年,Turner Whitted在光線投射的基礎(chǔ)上,加入光與物體表面的交互,讓光線在物體表面沿著反射,折射以及散射方式上繼續(xù)傳播,直到與光源相交。這一方法后來也被稱為經(jīng)典光線跟蹤方法、遞歸式光線追蹤(Recursive Ray Tracing)方法,或 Whitted-style 光線跟蹤方法。

光線追蹤方法主要思想是從視點向成像平面上的像素發(fā)射光線,找到與該光線相交的最近物體的交點,如果該點處的表面是散射面,則計算光源直接照射該點產(chǎn)生的顏色;如果該點處表面是鏡面或折射面,則繼續(xù)向反射或折射方向跟蹤另一條光線,如此遞歸下去,直到光線逃逸出場景或達(dá)到設(shè)定的最大遞歸深度。

經(jīng)典的光線追蹤:每像素從眼睛投射射線到場景,并追蹤次級光線((shadow, reflection, refraction),并結(jié)合遞歸

光線追蹤(Ray tracing)是三維計算機圖形學(xué)中的特殊渲染算法,跟蹤從眼睛發(fā)出的光線而不是光源發(fā)出的光線,通過這樣一項技術(shù)生成編排好的場景的數(shù)學(xué)模型顯現(xiàn)出來。這樣得到的結(jié)果類似于光線投射與掃描線渲染方法的結(jié)果,但是這種方法有更好的光學(xué)效果,例如對于反射與折射有更準(zhǔn)確的模擬效果,并且效率非常高,所以當(dāng)追求高質(zhì)量的效果時經(jīng)常使用這種方法。

以下這張圖示可以很好的說明光線追蹤方法的思路:

Ray Tracing Illustration First Bounce

基于光線追蹤渲染出的效果圖1

基于光線追蹤渲染出的效果圖2

典型的光線追蹤渲染效果圖

光線跟蹤的一個最大的缺點就是性能,需要的計算量非常巨大,以至于目前的硬件很難滿足實時光線追蹤的需求。傳統(tǒng)的光柵圖形學(xué)中的算法,利用了數(shù)據(jù)的一致性從而在像素之間共享計算,而光線跟蹤通常是將每條光線當(dāng)作獨立的光線,每次都要重新計算。但是,這種獨立的做法也有一些其它的優(yōu)點,例如可以使用更多的光線以抗混疊現(xiàn)象,并且在需要的時候可以提高圖像質(zhì)量。盡管它正確地處理了相互反射的現(xiàn)象以及折射等光學(xué)效果,但是傳統(tǒng)的光線跟蹤并不一定是真實效果圖像,只有在非常近似或者完全實現(xiàn)渲染方程的時候才能實現(xiàn)真正的真實效果圖像。由于渲染方程描述了每個光束的物理效果,所以實現(xiàn)渲染方程可以得到真正的真實效果,但是,考慮到所需要的計算資源,這通常是無法實現(xiàn)的。于是,所有可以實現(xiàn)的渲染模型都必須是渲染方程的近似,而光線跟蹤就不一定是最為可行的方法。包括光子映射在內(nèi)的一些方法,都是依據(jù)光線跟蹤實現(xiàn)一部分算法,但是可以得到更好的效果。

分布式光線追蹤 Distributed Ray Tracing [1984]

Cook于1984年引入蒙特卡洛方法(Monte Carlo method)到光線跟蹤領(lǐng)域,將經(jīng)典的光線跟蹤方法擴(kuò)展為分布式光線跟蹤算法(Distributed Ray Tracing),又稱為隨機光線追蹤(stochasticray tracing),可以模擬更多的效果,如金屬光澤、軟陰影、景深( Depthof Field)、運動模糊等等。

路徑追蹤 Path Tracing [1986]

Kajiya于1986年提出了路徑追蹤算法的理念,開創(chuàng)了基于蒙特卡洛的全局光照這一領(lǐng)域。根據(jù)渲染方程, Kajiya 提出的路徑追蹤方法是第一個無偏(Unbiased)的渲染方法。路徑追蹤的基本思想是從視點發(fā)出一條光線,光線與物體表面相交時根據(jù)表面的材質(zhì)屬性繼續(xù)采樣一個方向,發(fā)出另一條光線,如此迭代,直到光線打到光源上(或逃逸出場景),然后用蒙特卡洛的方法,計算其貢獻(xiàn),作為像素的顏色值。

簡單來說,路徑追蹤 = 光線追蹤+ 蒙特卡洛方法。

基于路徑追蹤渲染的效果圖

雙向路徑追蹤 Bidirectional Path Tracing [1993,1994]

雙向路徑追蹤(Bidirectional Path Tracing)的基本思想是同時從視點、光源打出射線,經(jīng)過若干次反彈后,將視點子路徑( eye path) 和光源子路徑( light path) 上的頂點連接起來(連接時需要測試可見性),以快速產(chǎn)生很多路徑。這種方法能夠產(chǎn)生一些傳統(tǒng)路徑追蹤難以采樣到的光路,所以能夠很有效地降低噪聲。 進(jìn)一步的, [Veach 1997]將渲染方程改寫成對路徑積分的形式,允許多種路徑采樣的方法來求解該積分。

Ray Casting ,Ray Tracing,Path Tracing的區(qū)別

初學(xué)者往往會弄不明白光線投射(Ray Casting ),光線追蹤(Ray Tracing),路徑追蹤(Path Tracing)三者的的區(qū)別,龔大 @叛逆者 在https://www.zhihu.com/question/29863225這個答案中的回答已經(jīng)很精辟,本文就直接引用了過來:

? Ray Tracing:這其實是個框架,而不是個方法。符合這個框架的都叫raytracing。這個框架就是從視點發(fā)射ray,與物體相交就根據(jù)規(guī)則反射、折射或吸收。遇到光源或者走太遠(yuǎn)就停住。一般來說運算量不小。

? Ray Casting:其實這個和volumetric可以脫鉤。它就是ray tracing的第一步,發(fā)射光線,與物體相交。這個可以做的很快,在Doom 1里用它來做遮擋。

? Path Tracing:是ray tracing + 蒙特卡洛法。在相交后會選一個隨機方向繼續(xù)跟蹤,并根據(jù)BRDF計算顏色。運算量也不小。還有一些小分類,比如Bidirectional path tracing。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 蒙特卡洛
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    8159
  • 光線追蹤
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

    21473

原文標(biāo)題:光線投射 ,光線追蹤與路徑追蹤的區(qū)別

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    光線追蹤技術(shù)學(xué)習(xí)資料

    資料是Peter Shirley的一周學(xué)會光線追蹤技術(shù)。資料為英文版.光線最終其實已經(jīng)不是什么新鮮技術(shù)了,但是最近隨著英偉達(dá)最新的顯卡加入了Ray Tracing技術(shù)又被人們開始提及起來,對于該圖像技術(shù)又有什么值得稱道的呢?趕緊
    發(fā)表于 10-12 16:36

    光線追蹤技術(shù)的作用

    其實對于產(chǎn)品設(shè)計師而言,光線追蹤技術(shù)并不陌生。簡單的說,是自三維(3D)圖形誕生以來圖形技術(shù)領(lǐng)域最重要的進(jìn)步之一,而且它即將從高深的電影和廣告領(lǐng)域轉(zhuǎn)向移動、可穿戴和汽車等嵌入式領(lǐng)域,作為全新的、更有
    發(fā)表于 11-02 08:21

    Imagination的光線追蹤等級系統(tǒng)介紹

    Imagination的光線追蹤等級系統(tǒng)
    發(fā)表于 12-21 06:02

    光線追蹤技術(shù)介紹

    光線追蹤:一種顛覆性技術(shù)
    發(fā)表于 01-22 07:19

    硬件光線追蹤的優(yōu)勢有哪些

    硬件光線追蹤的優(yōu)勢光線追蹤面臨的關(guān)鍵挑戰(zhàn)
    發(fā)表于 01-28 07:19

    光線追蹤等級系統(tǒng)的介紹

    我們?yōu)槭裁匆l(fā)布光線追蹤等級系統(tǒng)?它對游戲意味著什么?
    發(fā)表于 01-29 07:41

    光線追蹤如何實現(xiàn)實時三維圖形?

    什么是光線追蹤?光線追蹤如何實現(xiàn)實時三維圖形?
    發(fā)表于 02-26 07:03

    如何看待光線追蹤

    光線追蹤我們實際應(yīng)用中經(jīng)常用嗎,他到底是一項什么技術(shù)?
    發(fā)表于 03-07 08:36

    什么是光線追蹤?

    什么是光線追蹤
    發(fā)表于 05-28 06:38

    怎樣實現(xiàn)光線追蹤?

    怎樣實現(xiàn)光線追蹤?怎么使光線追蹤生效?
    發(fā)表于 05-31 06:51

    硬件光線追蹤的優(yōu)勢有哪些?

    光線追蹤面臨的關(guān)鍵挑戰(zhàn)是什么?硬件光線追蹤的優(yōu)勢有哪些?
    發(fā)表于 05-31 06:53

    光線追蹤算法匯總

    在基本光線追蹤算法中,只追蹤有限數(shù)目的光線。
    的頭像 發(fā)表于 05-11 15:58 ?1.7w次閱讀
    <b class='flag-5'>光線</b><b class='flag-5'>追蹤</b>算法匯總

    如何在家里使用光線追蹤

    圖形技術(shù)解釋起來通常很晦澀,但是光線追蹤很容易理解。它試圖模擬光在現(xiàn)實世界中的工作方式。光線追蹤沒有為游戲場景創(chuàng)建預(yù)先設(shè)計的光線,而是
    的頭像 發(fā)表于 06-15 13:16 ?2637次閱讀

    移動端的光線追蹤是如何實現(xiàn)的

    對于光線追蹤(ray tracing)這一概念,電腦游戲玩家肯定是不陌生的。光線追蹤給游戲畫面展示帶來了更為細(xì)膩的光照表現(xiàn)和寫實的光影效果,
    的頭像 發(fā)表于 11-11 09:34 ?2065次閱讀

    NVIDIA OptiX光線追蹤引擎的功能特性

    NVIDIA OptiX 光線追蹤引擎用于在 GPU 上實現(xiàn)出色光線追蹤性能的應(yīng)用框架,提供簡單、遞歸式的靈活工作流,用于加速光線
    的頭像 發(fā)表于 09-14 09:37 ?2707次閱讀
    RM新时代网站-首页