littlebot
Published on 2025-04-15 / 6 Visits
0

【源码】基于C++的光栅化渲染器

项目简介

本项目是一个简单的光栅化渲染器,使用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】