软光栅渲染器开发阶段性成果
项目概述
我们实现了一个基础的软光栅渲染器,具有以下特点:
- 完全从零实现,不依赖图形API
- 仅使用标准库和基础数学运算
- 支持基本的像素绘制和图像输出
核心功能实现
1. 数学库
1 2 3 4 5 6 7 8 9 10 11 12
| template<typename T> struct Vector3 { T x, y, z; };
struct mat4 { float m[4][4]; };
|
2. 帧缓冲管理
1 2 3 4 5 6 7 8
| class Framebuffer { int width, height; std::vector<vec3f> pixels; public: bool saveToTGA(const std::string& filename); };
|
3. TGA图像输出
实现了Truevision TGA格式的图像输出:
- 支持24位RGB格式
- 包含完整的文件头结构
- 像素数据BGR排列
项目结构
1 2 3 4 5 6 7 8
| SoftRasterizer/ ├── include/ │ ├── math/ # 数学库 │ └── core/ # 核心渲染组件 ├── src/ │ ├── io/ # 文件IO │ └── core/ # 实现代码 └── CMakeLists.txt # 构建配置
|
使用方法
- 构建项目:
1 2
| cmake -S . -B build cmake --build build --config Release
|
- 运行程序:
1
| ./build/Release/SoftRasterizer.exe
|
后续计划
- 实现OBJ模型加载
- 添加三角形光栅化
- 支持深度缓冲(Z-buffer)
- 实现基础光照模型
查看完整代码