Ray-tracing 中的相機(眼睛)是所有光束的起點,從相機成像平面出發的光束如果能夠經由折射、反射等等最終到達光源的那些「存活」的光束,才對最終的影像有影響的光束。這種與現實物理相反的設計(從光源發出光並追蹤那些存活到相機成像平面的光束)是為了減少計算量。
![ray-tracing 中,光束是從相機射出來的。<sup>[1]</sup>](/img/2016-11-09/01.png)
Ray-tracing 中的相機(眼睛)是所有光束的起點,從相機成像平面出發的光束如果能夠經由折射、反射等等最終到達光源的那些「存活」的光束,才對最終的影像有影響的光束。這種與現實物理相反的設計(從光源發出光並追蹤那些存活到相機成像平面的光束)是為了減少計算量。
有時候在寫 openGL 或者是類似 pbrt 這樣有牽涉到三維空間的程式的時候總是很難除錯…
雖然可以設斷點看看變數內容有沒有問題,但說實在的其實這樣看有時候根本看不出所以然,這樣還是難以除錯。
vdb 是一個解決這樣問題的工具,它提供了很多常見的畫線、畫點等等函式,最重要的是他的易用性,可以在幾乎不更動程式碼的狀態下就完成偵錯。
pbrt 是一個基於物理的 ray-tracing libarary,他可以拿來產生接近現實的真實場景,據說 IKEA 的型錄都是用類似方法產生的,而不是真的把產品擺出來拍照。 哈哈
最近的專案需要用到 OpenCV,官方有提供 C++ 以及 Python 的版本。我以前都用 C++,這次想說來換換口味使用 Python 好了,如果用的順手以後就都這樣搭配著用(Python + OpenCV)。
說是這樣說,但其實我對 Python 根本一竅不通,從來沒在比較大的專案中使用過,所以新手如我自然就遇到很多坑(?)
我用過了幾乎所有有名的 vim plugin-manager,包含 Pathogen, Vundle 以及比較新的 vim-plug。
而以時間序來說也是 Pathogen -> Vundle -> vim-plug
先來談談用過這三個分別的感想好了:
Travian 會改變一個人的各種行為。
我曾經研究過一個玩 Travian 的同學,但才研究一兩個星期,自己也就跑去玩了 痾…
研究結果是: Travian 確實會影響一個人的行為
並且發現影響程度大小依序是──腦子思維模式 > 記憶有關事物 > 算數方面 > 做人處事道理
或許有些人不這麼認為,所以我將要依影響程度大小來解釋: