BlueRose
文章97
标签28
分类7
Raytracing in Weekend、Raytracing Ground个人评价以及学习推荐

Raytracing in Weekend、Raytracing Ground个人评价以及学习推荐

《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》的学习建议。

《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加速而不会产生错误效果。

《Physically Based Rendering: From Theory to Implementation》

稍微看了一下pbrt,感觉就是个产品级渲染器代码说明书。

学习推荐:

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

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