用emacs玩轉圖形學的光線追蹤


不久前因爲在豆瓣的0bug圍觀,知道了Milo Yip這個牛人,他最近寫了篇:用JavaScript玩轉計算機圖形學 ,圖文並茂地介紹了離線渲染中最重要也是最基礎的光線追蹤算法。

編寫光線追蹤渲染器是圖形程序員的一個儀式,所以區區編寫了一個emacs版本 ,順便把一直想寫的ppm-gen功能完成。

這個渲染器速度是很慢的,所以要有心理準備。在區區的機器上,25x25渲染都要20秒。這可能是因爲過量使用eieio的原因。不過,這在emacs lisp中也是沒辦法的事情。vector/sphere/ray的實現,從assoc list變爲vector變爲defstruct最後變爲defclass,都是爲了編寫代碼更清晰的,eieio的with-slots/oref/oset非常好用!

下面是幾張效果圖:
深度渲染

反射渲染

P.S: 用emacs lisp渲染是很慢的,如果你想了解自己機器的單線程速度,可以多一個度量了^_

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章