《Ray Tracing in One Weekend》

优点:
  1. 相对简单易懂
  2. 渲染效果相当好
  3. 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起的,方便阅读
缺点:
  1. 看完书你依然不知道,渲染效果好是因为用了路径追踪
  2. 书中部分代码是有问题的
  3. 并没有使用标准库容器,没有一定c++基础看不了
点评

定位是光线追踪小学级别的入门书籍,可以让你大致了解光追的原理,一窥离线渲染的些许门道,而不至于遭受巨大打击。

《Ray Tracing from the Ground Up》

优点:
  1. 覆盖了比较多的基础部分
  2. 结构设计清晰,看代码很舒服
缺点:
  1. 此时年代过于久远(2007-9),高光模型竟然用phong
  2. 中文版翻译质量不佳
  3. 官网的代码是残缺不全的,也就是没有若干编程经验,学习此书寸步难行
  4. 渲染效果不如《Ray Tracing in One Weekend》
  5. 部分代码不如《Ray Tracing in One Weekend》,比如摄像机
点评

定位是光线追踪初中升高中级别的进阶书籍(五年中考三年模拟),覆盖的内容在当时应该是比较全的。但此书依然是教学性质的,很多产品级渲染器需要考虑的地方都没有讲。对于2016还在看这本书或者介绍这本书的,我真想往他们脸上糊上一本pbrt(本人看这本书是因为朋友推荐,看到15章时才发现此书年代久远还在用phong这种渲染模型,但本着有始有终的想法,还是硬把这本书看完了)。

不过他的采样设计貌似不适合直接用tbb加速(生成若干个随机数数组,然后通过一套跳转算法取数),直接用渲染会出现奇怪的撕裂斑块,可以通过自旋锁解决,但是速度会慢很多,奇怪的是就算了用自旋锁,路径跟踪渲染间接照明还是会出现奇怪的撕裂斑块。《Ray Tracing in One Weekend》是采用直接生成随机数的方法,消耗虽然大,但是应该可以直接使用tbb加速而不会产生错误效果。
稍微看了一下pbrt,感觉就是个产品级渲染器代码说明书。

学习推荐:

新手:《Ray Tracing in One Weekend》=》《Physically Based Rendering: From Theory to Implementation》

有离线渲染基础:《Physically Based Rendering: From Theory to Implementation》

《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐的更多相关文章

  1. OpenCascade Ray Tracing Rendering

    OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...

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

    我们来整理一下项目的代码 目录 ----include --hit --texture --material ----RTdef.hpp ----ray.hpp ----camera.hpp ---- ...

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

     Preface 今天有两个东东,一个是体积烟雾,一个是封面图 下一篇我们总结项目代码 Chapter 8:Volumes 我们需要为我们的光线追踪器添加新的物体——烟.雾,也称为participat ...

  4. 【Ray Tracing in One Weekend 超详解】 光线追踪1-4

    我们上一篇写了Chapter5 的第一个部分表面法线,那么我们来学剩下的部分,以及Chapter6. Chapter5:Surface normals and multiple objects. 我们 ...

  5. 【Ray Tracing The Next Week 超详解】 光线追踪2-1

     Preface 博主刚放假回家就进了医院,今天刚完事儿,来续写第二本书  Ready 我们来总结一下上一本书的笔记中我们的一些规定 1. 数学表达式 我们采用小写粗黑体代表向量,大写粗黑体代表矩阵, ...

  6. 【Ray Tracing in One Weekend 超详解】 光线追踪1-10

    <Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The ...

  7. 【Ray Tracing in One Weekend 超详解】 光线追踪1-2

    今天我们开始进入正篇 Chapter 3: Rays, a simple camera, and background 对于所有的光线追踪器,基本都有一个光线类,计算沿光线看到的颜色. 我们的光线是一 ...

  8. Peter Shirley Ray Tracing in One Weekend(下篇)

    Peter Shirley-Ray Tracing in One Weekend (2016) 原著:Peter Shirley 下篇主要对本书的后5章节进行学习,包括材质球的Metal,和Diele ...

  9. Peter Shirley Ray Tracing in One Weekend(上篇)

    Peter Shirley-Ray Tracing in One Weekend (2016) 原著:Peter Shirley 本书是Peter Shirley ray tracing系列三部曲的第 ...

随机推荐

  1. golang 代码笔记

    锁 互斥锁,g0获取锁,到释放锁之间,g1去获取锁失败,阻塞,g0释放锁之后g1获取锁成功,gn阻塞. package main import ( "fmt" "sync ...

  2. Ubuntu 服务器上面--安装和配置mysql 【转】

    更新源列表 打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入root用户的密码"--> ...

  3. Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比 ...

  4. 教你如何写出高效整洁的 css 代码——css优化(转载)

    css 写起来并不难,但在大型项目中,就变得难以管理,特别是不同的人在 css 书写风格上稍有不同,团队上就更加难以沟通,为此总结了一些如何实现高效整洁的 css 代码原则. css 优化的原则 1. ...

  5. Hive SQL 分类

    题目: 请使用Hive SQL实现下面的题目. 下面是一张表名为user_buy_log的表,有三个字段,user(用户),grp(分组编号),time(购物时间). 需要将用户按照grp分组,对ti ...

  6. 15、解决14中csv用excel打开乱码的问题 open('zhihu.csv','w',newline='',encoding='utf-8-sig')

    解决14中csv用excel打开乱码的问题 ,其实就是在写csv的时候把 utf-8 改成 utf-8-sig open('zhihu.csv','w',newline='',encoding='ut ...

  7. Java 基础知识点

    很多 Java 基础的东西都忘记了, 有必要再复习一些基本的知识点. 本文主要参考 https://github.com/Snailclimb/JavaGuide ================== ...

  8. SQL Server数据库读写分离提高并发性

    在一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力.很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡.遗憾的是,SQL Server 的所有版 ...

  9. 分别基于TensorFlow、PyTorch、Keras的深度学习动手练习项目

    ×下面资源个人全都跑了一遍,不会出现仅是字符而无法运行的状况,运行环境: Geoffrey Hinton在多次访谈中讲到深度学习研究人员不要仅仅只停留在理论上,要多编程.个人在学习中也体会到单单的看理 ...

  10. Jenkins--发送邮件配置

    使用Jenkins可以进行构建,并可以发送邮件.今天我们来讲一下邮件的配置. 首先:下载安装插件: 进入[Jenkins-系统管理-插件管理-可选插件],搜索“Email Extension”进行安装 ...