用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渲染是很慢的,如果你想了解自己机器的单线程速度,可以多一个度量了^_

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