A learning repo for https://raytracing.github.io/
ALL HONOR BELONGS TO Peter Shirley.
环境: Intel E2630 v4
- 完成三本ray tracer
- cpu并行/
移植到cuda上
一点经验:
-
并行很重要,越早实现越好。图形学里面debugger基本是残疾状态,除了诊断法向量之类的有点用。没有并行调试一次等半天。尤其是涉及到采样上的Bug, 采样数量不上来看不到Bug源头,没有实现并行效率会很低。
-
hard-code参数不可取。应该参数和代码分离。这里使用了ini作为配置文件,表达力比较弱, 不能嵌套结构。如果从头再来,我会使用有嵌套树状结构的配置文件(json, toml等,可以在配置文件里面定义渲染场景,场景和渲染部分解耦。hard-code参数会导致频繁重新编译代码。
image目录有原图
- 金属、玻璃球(1200x1200p, 2048samples,时长941秒)
- 传统cornell box
-
ray tracing in one weekend(cpu并行,1600p x 1600p x 100 samples,渲染时长: 290s)
-
Bounding Volume Hierarchies优化 (CPU并行,1600p x 1600p x 300 samples,渲染时长: 80.1s)
- perlin noise(柏林噪音)
- sphere uv mapping
- cornell box(没有用Monte-Carlo,随机均匀采样,噪点有点严重)