作业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的动图