12/03 SUN 小計:2小時
接續已經完成的shading部分,今天的第一個任務是投射在地上的影子。
大概是昨天在家念了一天的化學,突然要寫程式似乎忘了大半,
很多tools怎麼用都忘了^^" 還好有Marcus在,救了我啊!!
影子的部份,目標是要算出在物體和光源之間有沒有障礙物,進而計算他的tinting值。
這是今天的第一個成果,影子是有了,但是是錯的!注意到了嗎?球體的影子怎麼會是方形的呢?!
我跟Marcus想了想之後,才想到,每一個發射出去的ray都應該要transform到物件自己的座標,
而我就是忘了這個動作啦! 所以趕快把這個地方改一下。
嘿嘿!這樣就對啦! 這個就是正確的圖了。 一樣,這個場景裡的燈光是無限遠的directional light。
這個也是對的,是positional light的結果。
結束了影子的部份,看看時間還好,於是就開始著手在麻煩的recursion(遞迴)部分了。
到目前為止,我們都還沒有加入遞迴的成分,都是射出一道光,然後追一次打到哪個物體,
然後追一次該物體對於光源的影子,如此而已。
接下來還剩下兩個成份,reflection(反射)和refraction(折射)。
反射的部份,就是去一層層的尋找這個物體會反射到什麼別的物體,
進而在物體的本身顯現出反射物的圖樣(就像鏡子會照出我們的樣子一樣,那就是反射)。
反射需要的幾個條件,一個是入射線,一個是垂直該點的normal(法向量),然後才能計算出反射路徑。
嘿嘿!成功了吧!球球上成功的反射出地面的圖樣了! 當然本身的shading和地上的影子都還是有的!
再來一個fancy一點的,注意到因為是"球面"的關係,反射出的圖樣也變成"球型"的囉!
今天就做到這。 剩下最後一個折射的部份。
看description寫的有點複雜,所以我跟Marcus決定先回家吃晚飯,下次再寫吧!
- Dec 04 Mon 2006 09:45
CG project 4 - Ray Tracer 開發日誌(二)
close
全站熱搜
留言列表
發表留言