项目简介
本项目是基于C++语言实现的光线追踪渲染系统,参考《Ray Tracing in One Weekend》教程开发。借助光线追踪算法,模拟光线在场景中的传播与交互,实现简单场景的渲染,并将结果输出为PPM格式的图片。
项目的主要特性和功能
- PPM图片输出:支持将渲染结果保存为PPM格式图片,该格式跨平台,便于查看与处理。
- 三维向量类:实现三维向量类
vec3
,并创建color
子类区分点的三维坐标和颜色的RGB。 - 光线追踪基础:定义光线形式,可从相机发射光线到像素,计算光线与场景交点并获取交点颜色。
- 球面渲染:在场景中添加球体,计算光线与球体交点并设置颜色。
- 表面法线着色:引入球面法线,使球面颜色产生变化,让渲染效果更真实。
- 可碰撞物体抽象:将球面扩展为可碰撞抽象类,支持处理多个可碰撞物体的场景。
- 正反面向区分:定义正向面和反向面,记录光线与面的相交方向。
安装使用步骤
前提条件
假设用户已下载项目源码文件,且安装了支持C++编译的环境。
编译项目
使用C++编译器(如g++)编译项目源码,示例命令如下:
sh
g++ -o raytracer main.cpp
运行程序
运行编译生成的可执行文件,并将输出重定向到image.ppm
文件:
sh
./raytracer > image.ppm
查看结果
使用PPM查看工具(如PPM Viewer)查看image.ppm
文件,即可看到渲染结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】