好像不支持.MD的上传,在这儿贴一份纯文本吧不然助教可能会很难找怎么复现我的结果。清理和readme的十五认错了,希望不要被认为是没完成作业就好。教训,大家千万不要赶deadline了😂
—readme YadiCao—-
1. 格式与编译:正确
./Make && ./Clean are easy scripts
2. 包围盒求交集:正确。融合了之前的作业,并且改正了一个概念的错误,之前的作业里面似乎误以为光的方向要减去眼界位置,而恰好上次作业的眼睛在原点罢了,仔细想想才觉得是多此一举。
3. BVH加速:正确。为了具体观测时间增加了毫秒的输出。
4. SAH分割:
正确但时间变慢了,我用的是面积估计概率然后KDTree划分,但最终时间还是从1400ms变成了1600ms。这里的面积指的是xy面的面积,而不是总面积。原因是光和z方向太接近平行了,在z方向分割会导致不必要的overlap。
还有几点是想做的,但赶deadline没做完。1. SAV下最终leaf node不一定只能包含一个三角形,如果一个node里面的三角形已经足够少,而分割带来的收益也不够大时 (min estimated Cost after partition > raw Cost)则应该终止划分,在BVH.cpp 272~279 行有一些TODO note。 2. 可以把光线的方向性质带进来,就比如这次案例,光线几乎和z平行,那么空间划分时z方向就不划分了。
* 我把models误删了!求帮忙拷贝一份回来再测试,求轻拍。
* 为了方便测试加入了简单的输入接口,输入的第二个参数是输出图片的路径,第三个则控制是否使用SAH,因此想要获取和提供的images一样的结果,你只需分别运行以下命令
假设你在source目录:
rm -r images
mkdir images
./Clean
./Make
cd bin
./RayTracing ../images/bunny.ppm
./RayTracing ../images/bunny-SAH.ppm SAH
cd ../images