本项目参考自教程《Ray Tracing in One Weekend》,使用了ImGUI的图形化界面框架,使用官方自带的一个OpenGL2的例子,目的是用直接绘制的方法,在屏幕上逐像素输出整张图片。目前在MacOS(Xcode 10.3)和Windows(Visual Studio 2015)环境中上能顺利运行,其他环境待测试。
笔记目录:
《用两天学习光线追踪》1.项目介绍和ppm图片输出
《用两天学习光线追踪》2.射线、简单相机和背景输出
《用两天学习光线追踪》3.球体和表面法向量
《用两天学习光线追踪》4.封装成类
《用两天学习光线追踪》5.抗锯齿
《用两天学习光线追踪》6.漫反射材质
《用两天学习光线追踪》7.反射向量和金属材质
《用两天学习光线追踪》8.折射向量和电介质
《用两天学习光线追踪》9.可放置相机
《用两天学习光线追踪》10.散焦模糊
因为直接搬运了ImGUI的opengl2的例子,所以整个工程都是ImGUI的,核心代码放在:/examples/example_glfw_opengl2/ 每一节的内容会放到一个main.cpp文件中。每个mainX.cpp都是一个基于上一个文件,增加新的特性。
要想运行相应例子,只需修改makefile中第18行的文件名,然后编译, 例如:
SOURCES = main8.cpp
修改后,在命令行中进入makefile同级目录,执行make
,然后运行同级目录下生成的的example_glfw_opengl2
运行\example\imgui_examples.sln,然后将对应小节的mainX.cpp的代码粘贴到main.cpp里面。 (支持visual studio 2015,其他版本未测试)