Ray Tracing in one weekend:chapter 6:抗锯齿

chapter 6:抗锯齿

文章翻译

  当真实的照相机拍一张照片时,在物体边缘通常是没有锯齿的,因为边缘像素混合了一些前景色和背景色。我们可以通过对每个像素的许多样本的颜色取平均值来达到这个效果。我们不用担心分层,尽管这有争议,但是在我的项目里很常见。这对一些光线追踪来说是关键的,尽管我们写下通用的那种也不会收益很多,况且会让我们的代码看起来丑陋。我们把相机类抽象出来,因此我们过后能够制作一个炫酷的相机。
  我们需要一个随机数生成器,这能够返回真实的随机数值。c++没有传统上的标准随机数生成器,但是很多系统有 drand48 函数,这也是我在项目中使用的。然而,新版本的c++已经配置头文件来解决了这个问题(如果根据一些专家的说法,这并不完美).无论你的基础配置如何,请找到一款能够返回权威随机值的函数,能传统的返回在0~1区间的真实值,值小于1是很关键的,因为在某些时候我们会利用到这一点。
  对于一个给定的像素,我们在这个像素内有很多样本,并对每个样本发射光线,最终颜色就是这些光线所看到颜色的平均值:
在这里插入图片描述
  把那些相关参数放一起,就产生了一个相机类,这封装了我们简单轴对齐相机:
在这里插入图片描述
  主函数也改变了:
在这里插入图片描述
  放大所生成的图像,最大的改变是物体边缘的像素,有一部分是前景色,一部分是背景色:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值