【过程记录】【GAMES202】PRT

【过程记录】【GAMES202】PRT

https://zhuanlan.zhihu.com/p/337319903

离线渲染的书籍:
\1. Physically Based Rendering (third edition),这个不用多说了
\2. Advanced Global Illumination,整本书只有300多页,却基本覆盖了所有的Light Transport Method
\3. Robust Monte Carlo Methods for Light Transport Simulation,离线渲染必读: http://graphics.stanford.edu/papers/veach_thesis/

课程:
UWaterloo蜂须贺先生的CS888: https://cs.uwaterloo.ca/~thachisu/CS888_W21/,重点是页面中的paper list

不建议:
\1. Ray Traing三部曲 (in One Weekend, …) ,没啥用(默认已经从101之类的课程学到了基本的Monte Carlo方法和Path tracing的话)
\2. SmallPT,这个学懂了来看着玩可以,不懂的不要妄想从这个来学习离线渲染(本末倒置了属于是)

首先作业分成两部分

  1. 预计算部分(cpp)
  2. 实时环境光照部分(webgl)

这次的作业离线预计算部分使用了nori的光线追踪框架(既然这么巧遇到,正好202结束,渲染方向就做这个吧)

预计算部分

首先是项目构建,就cmake构建。

在编译时就遇到了问题

image-20221006012253027

但是这儿明明啥都没有

image-20221006012301544

解决方法如下,这是由于MSVC对中文字符编码的支持问题。

https://games-cn.org/forums/topic/guanyuzuoye2kaitoubianyidekunhuo/

编译成功后是这样的输出

image-20221006013619106

image-20221006013558409

这里输出的信息有一些值得关注的

主要是这里讲光照的信息

image-20221006013929438

来自于这个light.txt

而我们的SH系数最后输出到了transport.txt里面

image-20221006014056237

根据作业说明,我们知道这次的环境光照也还是来源于环境贴图,也就是说,我们这次其实不是完全计算的环境光,其实只是把环境贴图的环境光照转化成SH的表达而已。

3.54535 3.54535 3.54535
4.92763e-07 4.92763e-07 4.92763e-07
-1.9416e-07 -1.9416e-07 -1.9416e-07
2.29642e-07 2.29642e-07 2.29642e-07
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0