Skip to content

使用 SDL / C++ 实现的简易光线追踪器

Notifications You must be signed in to change notification settings

KsGin/Ray-Tracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ray Tracer

项目具体描述:使用 C++ 实现的简易光线追踪器( 使用 SDL 图形框架 )

项目时间:2018.6.1 —— 2018.6.21

部分截图:

  1. 单光源(定向光)反射

    just reflect1

  2. 多光源(点光源)反射

    just reflect2

  3. 多光源(点光源)反射,阴影

    reflect and shadow

  4. 多光源(点光源)反射,阴影,透过高透明度球体(更好的观察到折射情况)

    reflect and shadow and refract

内容实现:

  1. 基本渲染
  2. 带最大次数限制的递归光线追踪,反射 ,折射
  3. 基础 phong 模型,定向光,点光源(多光源)
  4. 阴影

留坑待填:

  1. 抗锯齿

文件结构(仅代码):

  1. headers/:头文件夹

    • camera.hCamera , PerspectiveCamera , OrthoCamera 类头文件(核心类,生成光线),封装摄像机相关
    • color.hColor 类头文件,封装颜色数据及基本操作
    • device.hDevice 类头文件(核心类),封装设备接口
    • model.hModel , Shpere , Plane 等数据头文件(核心文件),计算光线与模型相交
    • ray.hRay 类头文件,定义光线数据及基本操作
    • scene.hScene 类头文件(核心类),封装场景数据与基本操作(渲染)
    • light.h: PointLight , DirectionLight 类封装即基本操作
  2. include/:库文件夹

    • math/自用数学库
      • vector.hpp:向量库,封装 Vector2Vector2
      • matrix.hpp:矩阵库,封装 Matrix
  3. sources/:源文件夹

    • camera.cppCamera , PerspectiveCamera , OrthoCamera 类源文件(核心类,生成光线),封装摄像机相关
    • color.cppColor 类源文件,封装颜色数据及基本操作
    • device.cppDevice 类源文件(核心类),封装设备接口
    • model.cppModel , Shpere , Plane 等数据源文件(核心文件),计算光线与模型相交
    • ray.cppRay 类源文件,定义光线数据及基本操作
    • scene.cppScene 类源文件(核心类),封装场景数据与基本操作(渲染)
    • light.cpp: PointLight , DirectionLight 类封装即基本操作
  4. main.cpp :main 文件(入口)

About

使用 SDL / C++ 实现的简易光线追踪器

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published