项目具体描述:使用 C++ 实现的简易光线追踪器( 使用 SDL 图形框架 )
项目时间:2018.6.1 —— 2018.6.21
部分截图:
内容实现:
- 基本渲染
- 带最大次数限制的递归光线追踪,反射 ,折射
- 基础 phong 模型,定向光,点光源(多光源)
- 阴影
留坑待填:
- 抗锯齿
文件结构(仅代码):
-
headers/
:头文件夹camera.h
:Camera
,PerspectiveCamera
,OrthoCamera
类头文件(核心类,生成光线),封装摄像机相关color.h
:Color
类头文件,封装颜色数据及基本操作device.h
:Device
类头文件(核心类),封装设备接口model.h
:Model
,Shpere
,Plane
等数据头文件(核心文件),计算光线与模型相交ray.h
:Ray
类头文件,定义光线数据及基本操作scene.h
:Scene
类头文件(核心类),封装场景数据与基本操作(渲染)light.h
:PointLight
,DirectionLight
类封装即基本操作
-
include/
:库文件夹math/
:自用数学库vector.hpp
:向量库,封装Vector2
,Vector2
matrix.hpp
:矩阵库,封装Matrix
-
sources/
:源文件夹camera.cpp
:Camera
,PerspectiveCamera
,OrthoCamera
类源文件(核心类,生成光线),封装摄像机相关color.cpp
:Color
类源文件,封装颜色数据及基本操作device.cpp
:Device
类源文件(核心类),封装设备接口model.cpp
:Model
,Shpere
,Plane
等数据源文件(核心文件),计算光线与模型相交ray.cpp
:Ray
类源文件,定义光线数据及基本操作scene.cpp
:Scene
类源文件(核心类),封装场景数据与基本操作(渲染)light.cpp
:PointLight
,DirectionLight
类封装即基本操作
-
main.cpp
:main 文件(入口)