《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐
《Ray Tracing in One Weekend》
优点:
- 相对简单易懂
- 渲染效果相当好
- 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起的,方便阅读
缺点:
- 看完书你依然不知道,渲染效果好是因为用了路径追踪
- 书中部分代码是有问题的
- 并没有使用标准库容器,没有一定c++基础看不了
点评
定位是光线追踪小学级别的入门书籍,可以让你大致了解光追的原理,一窥离线渲染的些许门道,而不至于遭受巨大打击。
《Ray Tracing from the Ground Up》
优点:
- 覆盖了比较多的基础部分
- 结构设计清晰,看代码很舒服
缺点:
- 此时年代过于久远(2007-9),高光模型竟然用phong
- 中文版翻译质量不佳
- 官网的代码是残缺不全的,也就是没有若干编程经验,学习此书寸步难行
- 渲染效果不如《Ray Tracing in One Weekend》
- 部分代码不如《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》读后感以及光线追踪学习推荐的更多相关文章
- OpenCascade Ray Tracing Rendering
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-9
我们来整理一下项目的代码 目录 ----include --hit --texture --material ----RTdef.hpp ----ray.hpp ----camera.hpp ---- ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-8 Volume
Preface 今天有两个东东,一个是体积烟雾,一个是封面图 下一篇我们总结项目代码 Chapter 8:Volumes 我们需要为我们的光线追踪器添加新的物体——烟.雾,也称为participat ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-4
我们上一篇写了Chapter5 的第一个部分表面法线,那么我们来学剩下的部分,以及Chapter6. Chapter5:Surface normals and multiple objects. 我们 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-1
Preface 博主刚放假回家就进了医院,今天刚完事儿,来续写第二本书 Ready 我们来总结一下上一本书的笔记中我们的一些规定 1. 数学表达式 我们采用小写粗黑体代表向量,大写粗黑体代表矩阵, ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-10
<Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-2
今天我们开始进入正篇 Chapter 3: Rays, a simple camera, and background 对于所有的光线追踪器,基本都有一个光线类,计算沿光线看到的颜色. 我们的光线是一 ...
- Peter Shirley Ray Tracing in One Weekend(下篇)
Peter Shirley-Ray Tracing in One Weekend (2016) 原著:Peter Shirley 下篇主要对本书的后5章节进行学习,包括材质球的Metal,和Diele ...
- Peter Shirley Ray Tracing in One Weekend(上篇)
Peter Shirley-Ray Tracing in One Weekend (2016) 原著:Peter Shirley 本书是Peter Shirley ray tracing系列三部曲的第 ...
随机推荐
- Linux基本命令总结(七)
接上篇: 33,Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于 ...
- pta寒假作业2
题目二币值转换 题目代码 #include<stdio.h> int main (void) { int n, initial_n; scanf("%d", & ...
- 异步请求之ajax
一.初识ajax 1.下载引入jQuery <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"& ...
- OpenStack虚拟机冷迁移与热迁移
一.虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式. 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移.关闭电源的虚拟机进行迁移.通过冷迁移,可以选择将关 ...
- Vue技术内幕 出去看看吧 榨干部分小细节
vue\src\platforms\web\entry-runtime-with-compiler.js /** * Get outerHTML of elements, taking care * ...
- android系统添加预置APP(so库自动释放)
将APK直接放入系统目录中,会导致APK找不到so文件.正常情况下的安装是使用PackageManager,它会将so文件拷贝到系统读取的so目录(system/lib或system/lib64)下, ...
- Selenium Locating Elements
Locating Elements Location Methods: find_element_by_id find_element_by_name find_element_by_xpath fi ...
- 【算法】【python实现】二叉树深度、广度优先遍历
二叉树的遍历,分为深度优先遍历,以及广度优先遍历. 在深度优先遍历中,具体分为如下三种: 先序遍历:先访问根节点,再遍历左子树,再遍历右子树: 中序遍历:先遍历左子树,再访问根节点,再遍历右子树: 后 ...
- Django学习笔记(http协议与django安装)
Django入门 HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器 ...
- vue路由守卫(全局守卫)
router.beforeEach((to,from,next)=>{}) 回调函数中的参数, to:进入到哪个路由去, from:从哪个路由离开, next:函数,决定是否展示你要看到的路由页 ...