【Ray Tracing The Next Week 超详解】 光线追踪2-3
Preface 终于到了激动人心的纹理章节了 然鹅,看了下,并不激动 因为我们之前就接触过 当初有一个 attenuation 吗? 对了,这就是我们的rgb分量过滤器,我们画出的红色、蓝色、绿色等等,都是通过它来控制的 专业点的词语叫做rgb衰减比例,比如rtvec(1.,0.,0.),最后呈现出来的是红色,因为r保留了100% 它是怎么控制的呢,我们来回顾一下这个过程 首先,我们创建一个材质球 后面那个rtvec(0.4,0.2,0.1)就是衰减比例(衰减到原来的百分之。。) 之后 进入数据成员中, 之后主函数调用lerp的时候 info.materialp->scatter(sight, info, attenuation, scattered)) 球体的材质调用scatter函数 即: 没有丝毫改动地有数据成员传递到了attenuation 中 然后用attenuation 做乘法进行rgb衰减,递归就不用说了吧,最后递归到深处为黑色,不然为背景色 为什么要在前言将这个东东,因为 attenuation 所控制形成的物体表面颜色就是最简单的纹理 说白了这章比较简单,因为下一章是这本书的另外一个高难度章节(分别分布于第二章和第四章) 所以,中间第三章来点简单好玩的,过渡一下 先看效果 Chapter 3:Solid Textures 废话不多说,先写一个纹理类 ///