阿昌学习《RayTraing in one week》 (六)
第六章
这章节主要是添加一个抗锯齿效果(反锯齿(英语:anti-aliasing,简称AA),说起来抗锯齿感觉是个很有趣的技术,主要是它看起来就是把东西变模糊,但这样反而让图像更加的清晰,这真的很神奇。接下来直接看看在raytraing如何实现这部分。
在实际的真实世界中,我们的摄像机其实是没有锯齿这个效果的,是因为边缘像素是一些前景和背景的混合之后得到了图像,那么这种混合在代码里,我们可以使用多重采样然后求平均值来模仿这种效果。
也就是说一个像素点的颜色,是周围颜色的平均值,这样就可以做到抗锯齿。
首先将咱们的摄像机拎出来,写成一个摄像机类。

因为接下来要用到随机数随意添加一下drand48.h,MAXFLOAT我也同样放在里面了。

那么接下来,主函数也修改一下,这里添加一个循环采样100,然后求平均值最后再赋予颜色。

运行一下会得到新的图,这里我直接用上一章的图进行对比:


其实差异还是蛮明显的,这就是抗锯齿效果了