【Ray Tracing The Next Week 超详解】 光线追踪2-8 Volume

  Preface

今天有两个东东,一个是体积烟雾,一个是封面图

下一篇我们总结项目代码

 

Chapter 8:Volumes

我们需要为我们的光线追踪器添加新的物体——烟、雾,也称为participating media。 我们还需要补充一个材质——次表面散射材质,它有点像物体内的浓雾。

体渲染通常的做法是,在体的内部有很多随机表面,来实现散射的效果。比如一束烟可以表示为,在这束烟的内部任意位置,都可以存在一个面,以此来实现烟、雾

 

对于一个恒定密度体,一条光线通过其中的时候,在烟雾体中传播的时候也会发生散射,光线在烟雾体中能传播多远,也是由烟雾体的密度决定的,密度越高,光线穿透性越差,光线传播的距离也越短。从而实现烟雾的透光性。

引用书中一张图(光线可穿透可散射)

当光线通过体积时,它可能在任何点散射。 光线在任何小距离dL中散射的概率为:

概率= C * dL,其中C与体积的光密度成比例。

对于恒定体积,我们只需要密度C和边界。 

 

复制代码
/// isotropic.hpp// ----------------------------------------------------- // [author]        lv // [begin ]        2019.1 // [brief ]        the isotropic-class for the ray-tracing project //                from the 《ray tracing the next week》 // -----------------------------------------------------#pragma oncenamespace rt {  class isotropic :public material     { public:     isotropic(texture* tex) :_albedo(tex) {  }      virtual bool scatter(const ray& InRay, const hitInfo& info, rtvec& attenuation, ray& scattered)const override         {         scattered = ray(info._p, lvgm::random_unit_sphere());         attenuation = _albedo->value(info._u, info._v, info._p);         return true;         }  private:     texture * _albedo;     };  } // rt namespace
复制代码

 

这个材质的散射原理和漫反射磨砂材质的大同小异,均属于碰撞点转换为新视点,沿任意方向发射新的视线,只不过漫反射的视线方向向量指向外相切球体表面,而isotropic的视线方向指向以碰撞点为球心的单位球体表面

区别就在于

漫反射的散射光线不可能指到物体内部,它一定是散射到表面外部(视线方向指向外切球体表面)

isotropic材质的散射光线可以沿原来的方向一往前,以此视线透光性

因为烟雾内部只是颗粒而不存在真正不可穿透的几何实体,所以漫反射实体不可穿透,只能散射到表面外部,而烟雾可穿透

 

接下来我们看一下烟雾体

复制代码
/// constant_medium.hpp// ----------------------------------------------------- // [author]        lv // [begin ]        2019.1 // [brief ]        the constant_dedium-class for the ray-tracing project //                from the 《ray tracing the next week》 // -----------------------------------------------------#pragma oncenamespace rt {  class constant_medium :public intersect     { public:     constant_medium(intersect* p, rtvar d, texture* tex);      
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信