2021&2022年春季学期计算机图形学课程大作业
⚠️ Warning
请确保您cmake时使用的cuda与optix版本,CUDA 10.1(10.x,切勿使用cuda11), OptiX 7 SDK(7.x)
本作业以optix7course的代码框架作为基础,实现了相机控制,optix管线搭建,材质参数输入重构,蒙特卡洛光线追踪,折射/反射材质光追
common/为封装好的头文件和第三方库3rdParty包括stb_image图形加载库,tiny_obj_loader模型加载库,glfw的opengl渲染库gdt为GPU_Development_Tools库,用于调用optix,使用optix等相关函数及流水线glfWindow为交互窗口库,在其中我们实现了鼠标及键盘交互
models/为用到的模型,textures/为用到的纹理raytrace_work/包含主程序,流水线与场景渲染程序,光线追踪程序main为主程序,我们在其中利用glfWindow继承的虚函数完成鼠标及键盘交互功能,并且利用opengl库完成渲染工作Model为模型加载,完成了相关材质,顶点,网格的加载SampleRenderer完成了pipeline的搭建,及利用cuda实现的GPU相关数据导入devicePrograms.cu为主要的光线追踪程序,在其中完成__raygen__renderFrame,__closesthit__radiance,__miss__radiance,完成了蒙特卡洛光线追踪,折射/反射材质光追的具体工作
- 使用WASD移动摄像机,使用鼠标滑动控制摄像机方向
- 在sponza场景下感受optix7带来的强大实时交互的光追程序
- 根据命令行提示自由的调整移速,光追量,降噪等参数
代码使用CMake配置,请使用Cmake生成可执行文件