欢迎光临散文网 会员登陆 & 注册

阿昌学习《RayTraing in one week》 (六)

2022-11-07 23:58 作者:柯昌弟弟c  | 我要投稿

第六章

        这章节主要是添加一个抗锯齿效果(反锯齿(英语:anti-aliasing,简称AA),说起来抗锯齿感觉是个很有趣的技术,主要是它看起来就是把东西变模糊,但这样反而让图像更加的清晰,这真的很神奇。接下来直接看看在raytraing如何实现这部分。

        在实际的真实世界中,我们的摄像机其实是没有锯齿这个效果的,是因为边缘像素是一些前景和背景的混合之后得到了图像,那么这种混合在代码里,我们可以使用多重采样然后求平均值来模仿这种效果。

        也就是说一个像素点的颜色,是周围颜色的平均值,这样就可以做到抗锯齿。

        首先将咱们的摄像机拎出来,写成一个摄像机类。

camera.h

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

随机数drand48和srand48

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

main.cpp

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

左边有抗锯齿,右边无
左边有抗锯齿,右边无

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

阿昌学习《RayTraing in one week》 (六)的评论 (共 条)

分享到微博请遵守国家法律