CORONA 渲染器學(xué)習(xí)筆記之十:原理

【前言】

? ? ? ? CORONA渲染器使用路徑追蹤來渲染圖像。什么是路徑追蹤呢赞警?路徑追蹤是一種渲染算法妓忍,它通過跟蹤來自攝像機(jī)的獨(dú)立光路來計(jì)算最終圖像。

? ? ? ? 本來我想洋洋灑灑寫一篇通俗易懂的文章愧旦,后來世剖,我在網(wǎng)上看到了一位從事動(dòng)畫電影特效工作的網(wǎng)友,他寫的一篇關(guān)于路徑追蹤文章笤虫,內(nèi)容非常好搁廓。我感覺那就是我想寫的文章,這使我無法動(dòng)筆了耕皮。所以境蜕,特意去掉的C++語言部分,部分轉(zhuǎn)載給大家凌停。

【轉(zhuǎn)載】

轉(zhuǎn)載地址:http://ymuhua.com

? ? ? ?光線追蹤的渲染技術(shù)已經(jīng)被大量運(yùn)用到現(xiàn)在的電影產(chǎn)業(yè)中粱年,我們身邊也出現(xiàn)了大量光線追蹤的渲染器,Arnorld罚拟,Vray台诗,Houdini的mantra,Maxwell赐俗、Corona等等拉队。它出現(xiàn)的目的也是為了追求更真實(shí)的物理效果。

光線追蹤技術(shù)的光線是攝像機(jī)發(fā)出的阻逮,最后追蹤到光源結(jié)束粱快。

? ? ? ? 光線追蹤算法中,一個(gè)物體要被觀察者(camera)看到要具備兩個(gè)因素叔扼。其一事哭,就是要有光,物體不被光照到我們是看不到瓜富,其二鳍咱,就是當(dāng)然要有物體,光被物體反射入觀察者眼中才能被看到与柑。所以谤辜,光線追蹤算法就是計(jì)算光線和物體交互蓄坏,碰撞檢測的算法。

? ? ? ? ?光線追蹤算法分為兩種:正向追蹤算法和反向追蹤算法丑念。其中涡戳,正向追蹤算法是大自然的光線追蹤方式,即由光源發(fā)出的光經(jīng)環(huán)境景物間的多次反射渠欺、透射后投射到景物表面,最終進(jìn)入人眼椎眯。

? ? ? ? 反向追蹤算法正好相反挠将,它是從觀察者的角度出發(fā),只追蹤那些觀察者所能看見的表面投射光编整。就目前而言舔稀,所有3D制作軟件的光線追蹤算法都是采用反向追蹤法,原因是這種算法能夠最大程度地節(jié)省計(jì)算機(jī)的系統(tǒng)資源掌测,而且不會(huì)導(dǎo)致渲染質(zhì)量的下降内贮。

? ? ? ? 為什么反向追蹤快呢?我們玩走迷宮汞斧,是正走快夜郁,還是反走快?

? ? ? ? 反向追蹤法就是從觀察者開始向場景中射出光線粘勒,當(dāng)光射出后打到物體上后竞端,我們?cè)購哪莻€(gè)被擊中的點(diǎn)所在表面在射出光線(我們假設(shè)稱作陰影光線或光源光線)。如果這光源光線被射出后遇到了場景中的光源庙睡。那么我們就能看到這個(gè)物體事富,又或者這光源光線又打到了另外一個(gè)物體上 ,那么我們看到的這個(gè)物體就在陰影中乘陪。

? ? ? ? 接下來我們來介紹柵格化(Rasterization)统台。就是將圖轉(zhuǎn)化為一個(gè)個(gè)柵格組成的圖象

? ? ? ? 為什么要柵格化,因?yàn)槲覀冎牢覀兊碾娔X屏幕是由像素點(diǎn)組成啡邑。目前主流的像素已經(jīng)1920*1080贱勃。也就是說,我們的屏幕橫向有1920個(gè)像素谤逼,然后叢向有1080個(gè)像素點(diǎn)募寨。

我們?cè)阡秩驹O(shè)置中,設(shè)置圖像大小就是這個(gè)森缠。

? ? ? ? 所以拔鹰,我們要將三維的模型投射到屏幕上面,然后將每個(gè)像素點(diǎn)填充上一個(gè)相對(duì)硬的顏色贵涵,就好比一個(gè)圓是由多個(gè)網(wǎng)格組成列肢。當(dāng)然了恰画,網(wǎng)格細(xì)分越高,顯示精度也越好瓷马。

? ? ? ? 光線追蹤的靈魂所在就在于光線拴还。所以,我們基于屏幕的每個(gè)像素點(diǎn)射出去一個(gè)光線欧聘。如果射出去的光線碰到了障礙物(模型)片林,我們就能將這個(gè)像素點(diǎn)填充上相應(yīng)障礙物的信息(根據(jù)燈光,物體材質(zhì))怀骤。如果什么都沒碰到费封,那么相對(duì)因的像素就什么都不顯示(背景顏色)。

? ? ? ? 現(xiàn)在我們知道了蒋伦,每個(gè)像素到底看到了什么弓摘。然后我們通過重復(fù)的遍歷屏幕上的每個(gè)點(diǎn),那么一個(gè)球就出現(xiàn)在屏幕上了痕届。是不是很好理解韧献?

好了,下面我用為代碼來簡單介紹一下一個(gè)簡單的渲染器的工作流程研叫。省略........

? ? ? ?影響一個(gè)像素點(diǎn)顏色由三個(gè)通道來表示锤窑,R(紅),G(綠)嚷炉,B(藍(lán))也就是這三個(gè)通道來表示果复,我們知道通過這三個(gè)顏色組合,我們可以得到所有的顏色渤昌。比如紅色+藍(lán)色=紫色虽抄。

? ? ? ?我們現(xiàn)在定義每個(gè)顏色通道為8位,也就是2^8独柑。他表示范圍為0-255迈窟。0表示最小值,255表示最大值忌栅。所以

黑色:0车酣,0,0

紅色:255索绪,0湖员,0

綠色:0,255瑞驱,0

藍(lán)色:0娘摔,0,255

白色:255唤反,255凳寺,255

那么問題來了鸭津,如何來決定某個(gè)像素的值呢:

? ? ? 它由多個(gè)因素來決定的。請(qǐng)看下圖:

? ? ? ?我們簡單來分析: 首先一束光射出去肠缨,我們打到一個(gè)物體上逆趋,

? ? ? ? 如果打到一個(gè)物體向光面上,那么我們會(huì)根據(jù)物體的材質(zhì)(物體本體顏色晒奕,對(duì)光的漫反射闻书,對(duì)其他物體的反射)來計(jì)算像素點(diǎn)材質(zhì)。

? ? ? ?如果打到一個(gè)背光面上脑慧,那么這就是陰影魄眉。

? ? ? ?如果什么都沒打到那么,那么他就是個(gè)背景顏色漾橙。

? ? ? ? 畢竟在光線追蹤影響物體顏色的因素太多了杆融,因?yàn)楣饩€是在空間中不停的反彈楞卡。有直接反射霜运,間接反射,理論上來說如果計(jì)算時(shí)間足夠長蒋腮,那么得到的結(jié)果就無限接近真實(shí)效果淘捡,但是時(shí)間和效果往往是矛盾的,我們?nèi)绾卧谟邢薜臅r(shí)間中得到盡量真實(shí)的效果就是我們之后要做的池摧。

【后記】

? ? ? ?看完這篇圖文并茂的文章焦除,你是否明白CORONA渲染器的光線追蹤是怎么回事了吧?再次感謝作者的好文章作彤。喜歡的朋友可以到該作者的網(wǎng)站上去看他更多的文章膘魄。

轉(zhuǎn)載地址:http://ymuhua.com/2016/01/04/introraytracing/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市竭讳,隨后出現(xiàn)的幾起案子创葡,更是在濱河造成了極大的恐慌,老刑警劉巖绢慢,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灿渴,死亡現(xiàn)場離奇詭異,居然都是意外死亡胰舆,警方通過查閱死者的電腦和手機(jī)骚露,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缚窿,“玉大人棘幸,你說我怎么就攤上這事【肓悖” “怎么了够话?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蓝翰,是天一觀的道長。 經(jīng)常有香客問我女嘲,道長畜份,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任欣尼,我火速辦了婚禮爆雹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愕鼓。我一直安慰自己钙态,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布菇晃。 她就那樣靜靜地躺著册倒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磺送。 梳的紋絲不亂的頭發(fā)上驻子,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音估灿,去河邊找鬼崇呵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛馅袁,可吹牛的內(nèi)容都是我干的域慷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼汗销,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼犹褒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起弛针,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤叠骑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后钦奋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體座云,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年付材,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朦拖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厌衔,死狀恐怖璧帝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情富寿,我是刑警寧澤睬隶,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布锣夹,位于F島的核電站,受9級(jí)特大地震影響苏潜,放射性物質(zhì)發(fā)生泄漏银萍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一恤左、第九天 我趴在偏房一處隱蔽的房頂上張望贴唇。 院中可真熱鬧,春花似錦飞袋、人聲如沸戳气。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓶您。三九已至,卻和暖如春纲仍,著一層夾襖步出監(jiān)牢的瞬間呀袱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國打工巷折, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留压鉴,地道東北人崖咨。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓锻拘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親击蹲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子署拟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Problem Formulation Ray Tracing的目標(biāo)是生成一張包含場景內(nèi)物體,具有真實(shí)感的圖像歌豺,因...
    Manster閱讀 8,905評(píng)論 4 8
  • 散射是一種非常美麗的自然現(xiàn)象推穷,在自然界中光穿過潮濕或者含有雜質(zhì)的介質(zhì)時(shí)產(chǎn)生散射,散射的光線進(jìn)入人眼,讓這些介質(zhì)看起...
    FOXhunt閱讀 6,015評(píng)論 0 8
  • 我是從2016年《通往財(cái)富自由之路》專欄開設(shè)伊始就在得到app上進(jìn)行了訂閱,到現(xiàn)在已經(jīng)半年有余砾肺,但除了偶爾留...
    昕夕逐浪閱讀 256評(píng)論 0 0
  • 我們是城市的候鳥 一年遷徙兩次 一次秋天 一次春天 我們是城市的候鳥 從南到北 聽見這個(gè)城市落雨 也看過那個(gè)城市...
    九渡閱讀 274評(píng)論 0 0
  • 新浪微博固灵,在2014年初就已更名為“微博”,想彰顯出一家獨(dú)大的氣場,但還是依然猶如一潭沉寂的死水议谷。 有某個(gè)人多次的...
    包包沒有a夢(mèng)閱讀 1,068評(píng)論 0 5