【作业2】Another Ray Tracer

作业2

作业描述

这个Ray Tracer基本上是照搬了Peter Shirley的第一本小书Ray Tracing in One Weekend,在我写的时候参考的是Version 3.2.3这个版本。应该比其他中文博客删改了不少内容。期间还参考了moranzcw大佬一年前的左右 (主要是抄了Cornell Box中几个物体的定义)及其帖子下其他人的代码,在此表示感谢。

与原书不同的是优化了random_in_unit_sphere()这个用来生成在单位球内随机一点的函数,在我的电脑上跑时(18fps+)与moranzcw大佬的程序(9fps+)相比大概能快一倍。(估计拥有更高配置显卡的大佬们能跑到实时吧)为此特地写了另一个程序来不同随机函数的可视化分布,顺便尝鲜了一下GGUI。

之后加入了一些键鼠操作和录制功能

效果展示

先是两张不同角度的Cornell Box



然后是那本小书的封面

再来张Cornell Box的动图
output_min

代码链接

Code

8 个赞

金属球似乎有一圈蓝边?是没有clamp掉法线以下的出射方向导致的?