目标
调研instant-NGP生成3D模型的效果。
结论
在硬件加持下实时渲染效果较为逼真还原度较高。
效果如下:
视频: www.bilibili.com/video/BV1oP…
不足
-
Instant-NGP 导出mesh文件(obj)后的效果很差
-
视频:
-
Instant-NGP 的实时渲染是依赖硬件支持的,因此效果比较好,但对导出obj 后的效果很差,一方面是instant-ngp的重点不是在 3D mesh 方向上,因此导出的Obj 文件仅用于展示,无法直接作为产品使用。
-
调研
简介
-
Instant-NGP 核心是基于 NeRF 实现3D模型的渲染。
- NeRF的研究目的是合成同一场景不同视角下的图像。方法很简单,根据给定一个场景的若干张图片,重构出这个场景的3D表示,然后推理的时候输入不同视角就可以合成(渲染)这个视角下的图像了。
使用
-
基本要求
- 显卡要求:起码 GTX 1000 系列以上,RTX 系列最好。
-
环境要求:
-
数据要求
- 需要使用基于 Colmap 工具对素材进行处理,计算相机位置的数据
-
Instant-NGP 官方提供可用的GUI 程序
-
自行构建(demo演示直接使用官方的即可)
- 安装 OptiX 7.3 (需要注册才能下载),安装完成后,PATH 中配置 OptiX_INSTALL_DIR 指 安装地址
-
编译
-
使用 git 拉取 Instant-ngp 源码
-
创建编译环境:
-
打开: Developer Command Promp
-
输入: conda install python=3.9
-
cd 到 instant-ngp 源码目录
cmake . -B build cmake --build build --config RelWithDebInfo -j 16
-
-
python 配置
# 使用清华源,命令行中执行
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple
最佳实践
-
素材要求
-
素材前后具有连续性且相似度高时比较好
-
拍摄图片
- 相机固定,相机固定,连续性拍摄,在拍摄物缓慢旋转是原则上1秒1张比较好
- 拍摄物固定,围绕拍摄物拍摄时,需要保持相机的相对稳定,抖动、不稳容易造成图形模糊。
-
拍摄视频
- 围绕拍摄物旋转是需要稳,速度要缓慢,上下抖动大而导致的视频帧模糊。
-
-
素材处理(Colmap)
- 使用Colmap处理素材是硬件性能越好效率越高(CPU、内存)
- colmap 参数 -aabb_scale 数字越大处理时间越长,这是colmap处理素材的关键参数,决定渲染时的场景范围,数值越大,colmap的计算量约大,推荐32,160张照片处理时间在30分钟上下(硬件: AMD 5800, 16G内存)。