Preface 往后看了几章,对这本书有了新的理解 上一篇,我们第一次尝试把MC积分运用到了Lambertian材质中,当然,第一次尝试是失败的,作者发现它的渲染效果和现实有些出入,所以结尾处声明要通过实践,改进当前的效果 于是乎,就有了后面的章节,几乎整本书都在讲,如何一步一步地改进上一篇的画质,使其更加符合现实,上一篇其实是抛砖引玉 这本书的小标题名为the rest of your life 通过前面几章,我们可以更好地理解这句话:我们通过MC积分优化效果,采用的是pdf函数,之前说过,…
我们上一篇写了Chapter5 的第一个部分表面法线,那么我们来学剩下的部分,以及Chapter6. Chapter5:Surface normals and multiple objects. 我们这一节主要向场景中添加对象. 依据代码重用原则,此时应该抽象出对象创.绘制的公共部分 All what we do are followed by object-oriented ! 我们先来抽象并定义一些基本的类型 1>.ray. 这个不用说了,但是我们发现,在后面涉及到的所有的向量和精度类型均…
<Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The Next Week>,还请多多关注 这几天我在渲染这本书的封面图,封面图还没出,不算结束,刚好安排了10节 今天呢,有两件事: 1.阐述整个工程的文件组织即内容 2.阐述封面,完结 12.1工程文件组织 试过很多方法,问过很多老师,无奈,子类继承实现的父类纯虚函数实在无法和类声明分成两个文件(即声明放于…
今天我们开始进入正篇 Chapter 3: Rays, a simple camera, and background 对于所有的光线追踪器,基本都有一个光线类,计算沿光线看到的颜色. 我们的光线是一个矢量运算: p(t) = a + t * b. 书中的向量用大写粗体字表示,但这里我遵循一般表示法:矩阵为粗体大写字母,向量为粗体小写字母,而标量为正常字体 P是光线指向的目标位置,a是光线的起点,b是光线指向的方向,t则是光线步长. 如图: 我们如下定义ray-class /// ray.h /…
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of different C++ constructs 栈的速度快是因为,总是反复访问同一段地址,如果没有大的数组,肯定实在L1 cahce中. 全局静态区,global,static变量,float constants, string constants, array initializer lists,switch…
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现高质量的渲染效果,且可以使用GPU提升渲染效率. 关键字Key Words:OpenCascade, Ray Tracing 参考链接:Ray tracing as alternative rendering method for OCCT visualization component http:…