项目简介
本项目实现了一个基于C++和OpenCV的3D模型渲染系统。该系统支持区间扫描线算法和z - buffer扫描线算法,能够处理非凸多边形,还可实时显示渲染时间,适用于需要高效3D渲染的各类应用场景。
项目的主要特性和功能
- 支持两种扫描线算法,用户可按需选择区间扫描线算法或z - buffer扫描线算法进行渲染。
- 能够处理非凸多边形,保证复杂模型的准确渲染。
- 实时显示扫描线算法的执行时间,便于用户评估渲染效率。
- 允许用户通过键盘快捷键调整模型位姿,实现交互式操作。
- 通过自定义文本解析方法,高效解析OBJ文件,减少内存拷贝和性能损耗。
安装使用步骤
1. 安装依赖环境
确保系统满足以下要求: - Ubuntu > 18 - OpenCV > 3 - Eigen > 3 - yaml - cpp - cmake > 2.8 - g++ > 7.4
安装依赖库:
bash
sudo apt install -y libeigen3-dev libopencv-dev libyaml-cpp-dev
sudo apt install cmake g++-7
2. 编译运行
在项目根目录下执行以下命令:
bash
mkdir build && cd build
cmake ..
make
./scanline
3. 配置文件设置
修改config
目录下的config.yaml
文件,配置OBJ文件路径、渲染方式、窗口大小以及模型位姿:
yaml
object_path: "../model/bunny.obj" #object file path
width: 800 #width of window
height: 600 #height of window
render_mode: 0 #0 for interval scanline, 1 for z buffer scanline
rotation_vector: [3.14, 0, 0] #original pose.
4. 交互操作
在运行可执行文件时,可通过以下键调整模型位姿:
- W, A, S, D, J, K
:调整模型位姿
- Q
:退出程序
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】