项目简介
本项目是一个简单的光栅化渲染器,使用C++编写。其主要目的是巩固图形学基础知识,适合用于学习和复习图形学及C++编程。项目实现了OBJ模型解析、画线(Bresenham)、画三角形、矩阵与向量运算、MVP变换、仿照Unity Shader风格的Shader、布林冯光照模型、Phong着色等功能。
项目的主要特性和功能
- OBJ模型解析:可解析OBJ格式的3D模型文件。
- 画线与画三角形:采用Bresenham算法绘制线条,支持多种方法绘制三角形。
- 矩阵与向量运算:实现基本的矩阵和向量运算,支持MVP变换。
- Shader支持:仿照Unity Shader风格,支持布林冯光照模型和Phong着色。
- 深度缓冲(z - buffer):运用z - buffer算法进行隐藏面消除。
- 纹理映射:支持TGA格式的纹理映射。
安装使用步骤
1. 复制项目
bash
cd tinyRenderer
2. 编译项目
bash
make
3. 运行项目
输入一个OBJ模型及其贴图(贴图为TGA格式,文件名为OBJ文件加_tex
),例如:
bash
./main ./obj/diablo3_pose.obj
运行后,将在图片目录下生成渲染图片output.tga
。
4. 调整模型角度或位置
若想调整模型的角度或位置,可修改transform.h
文件开头的几个变量。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】