This repository was archived by the owner on Aug 6, 2022. It is now read-only.
Releases: ACMClassCourse-2021/PPCA-Raytracer-2022
Releases · ACMClassCourse-2021/PPCA-Raytracer-2022
Obj & Codegen Related
Obj Related
此部分希望让你们的场景支持载入obj文件并渲染,也是非常欢迎各位整一些花活的部分。助教为你们提供了不少obj的案例,其中派大星,棒球棒等obj是带有贴图的,我们鼓励大家探索如何实现贴图的导入,其他的obj没有带上贴图,大家可以使用自己在之前构建的texture或者其他属性给它们贴上图案,期待大家的成果!如有需要大家可以自由上网去找自己喜欢的obj模型,感兴趣的同学还可以通过blender等一系列软件创造自己喜欢的3D模型。
完成这一部分你可能需要:
Codegen Related
- raytracer_codegen:目前,
BVHNode是在运行时构造的。这个过程其实可以在编译期完成。我们可以通过过程宏生成所有的物体,并构造静态的BVHNode,从而提升渲染效率。而在这个文件中,我们提供了一个在编译期完成bvh构造的例子,你可以模仿这个例子完成一个在编译期完成bvh构建的场景- 注意:
raytracer_codegen和raytracer大概是不能共用module的,你可能需要把一些实现(如Vec3)简单地copy到raytracer_codegen下。
- 注意:
- data : 在过程宏中,读取data文件,直接从 yaml 或 JSON 文件(选择一种即可)生成场景对应的程序。
- 例子中
BVHNode里的bounding_box是冗余数据。你可以不使用这个数据。 - 读 JSON / yaml 可以调包。
- 例子中