-
项目比较简单,目前只实现了:
- 几何:轴对齐立方体、球体的实现,即它们与射线求交点的算法
- 材质:纯镜面反射、纯完美漫反射、介于它们直接的模糊反射
- 算法:核心是蒙特卡洛方法,此外实现了轮盘赌算法,并使用低差异序列进行采样 (但是感知不强,可能有问题)
-
项目文件:
- main.cpp: 主函数,包括初始化世界,实现路径追踪算法
- hitable.h: 表示可以计算光线求交的接口,以及定义结构体hit info
- sphere.h: 以圆心和半径定义球,实现光线求交运算(使用球体与射线求交解析解计算,也实现了几何推断的公式求解,但是有问题待解决)
- box.h: 以中心和长宽高定义的轴对齐立方体,实现AABB包围盒和射线求交的计算
- material.h: 材质,通过返回对于入射光$r_i$可能的出射光$r_o$,以及光的反射率来定义一种材质。已实现镜面、兰伯特散射、golssy材质
- ray.h: 通过原点和方向定义一条光线
- vec3.h: 定义3维向量以及其计算
- tools.h: 工具函数,如计算Halton低差异序列函数
- camera.h: 定义了一个相机
ZolHo/MyRayTracing
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
