本书旨在为读者架起一座从三维视觉理论通往神经渲染实战的桥梁。面对NeRF与3DGS技术陡峭的学习曲线,本书坚持原理深度与工程落地并重,不仅系统解析了从多视图几何到神经隐式表示的演进逻辑,更通过丰富的代码注解与可视化案例,将复杂的数学推导转化为可操作的工程实践。无论你是希望深入理解体渲染奥秘的算法研究员,还是致力于优化重建流程的开发工程师,都能在本书中找到从入门到进阶的完整路径。全书共分为8章。第1章综览三维重建技术全景,奠定NeRF与3DGS的理论基石。第2章与第3章夯实数学与渲染基础,详解坐标变换、投影映射与体渲染流水线。第4章与第5章深入NeRF核心,从源码层面剖析位置编码、分层采样,并通过NerfStudio平台演示模型训练与调试的完整闭环。第6章聚焦3DGS技术,详细解读三维高斯表示、快速可微光栅化及密度控制策略。第7章拓展至产业应用,介绍三维模型提取、Blender插件开发与交互渲染技巧。第8章则着眼于性能瓶颈,探讨跨平台加速与优化策略,助力模型高效部署。
Preface 前 言
为什么写作本书
在三维视觉与图形处理领域,三维重建技术始终扮演着核心角色。从早期的立体视觉和运动恢复结构(Structure from Motion,SfM),到近年来迅速发展的神经场表示方法,三维重构正经历着深刻的范式转变。尤其是以NeRF(Neural Radiance Field,神经辐射场)和3DGS(3D Gaussian Splatting,三维高斯泼溅)为代表的创新方法,凭借对场景几何、纹理及光照等因素的高保真建模能力,正在推动虚拟现实、计算机图形学、自动驾驶等多个领域的技术演进。
然而,对于希望深入掌握并应用这类技术的工程师、研究人员和开发者而言,当前仍面临诸多挑战。
虽然NeRF与3DGS已有多个开源实现版本,但算法原理艰深,代码结构庞杂,因此缺乏系统化的学习资料。
实际工程中涉及的数据预处理、体渲染优化、部署适配等环节的知识分布零散,读者难以建立整体认知。
传统图形学与神经网络之间存在建模方式差异,如何打通几何建模与神经场表示之间的知识壁垒已成为关键问题。
本书面向工程实现和教学研究两个维度,系统梳理三维重建从经典几何方法向神经驱动表示方法的演进路径,深入解析NeRF与3DGS的表示原理、体系结构与关键实现,并通过可复现的实验与实战案例,为读者提供一条从理论学习到工程部署的完整实践路径。
本书特色
本书力求在理论深度与实践可操作性之间取得平衡,主要具备以下5个特色。
1)从几何重建到神经场建模的系统演进:构建从传统SfM、MVS(Multi-View Stereo,多视图立体)方法到NeRF、3DGS的知识桥梁,帮助读者完整理解三维重建的发展脉络。
2)结合公式推导与代码注解:采取图示、伪代码与源码讲解相结合的方式,直观呈现核心模块的数学原理与工程实现方式。
3)兼顾可视化开发与跨平台部署:覆盖NerfStudio平台开发流程,结合Gaudi、SYCL等异构平台进行部署优化实践。
4)技术细节与工程规范并重:深入剖析场景归一化、体渲染、位置编码、密度控制等关键机制,兼顾算法设计与训练调优。
5)配套真实案例,面向产业应用:涵盖三维建模、插件开发、交互渲染等典型应用,指导模型选型与部署流程。
读者对象
本书适用于以下读者群体。
算法工程师:计算机图形学、计算机视觉方向的算法工程师以及相关专业的学生。
开发工程师:三维重建、AI 场景重建、虚拟现实技术相关的开发者。
产品/管理人员:产品经理或企业研发人员,需评估该类技术在工业场景中的落地路径与工程成本。
如何阅读本书
建议初学者按章节顺序阅读,具备一定背景的读者也可直接查阅第4章或第6章,结合项目需求重点学习。本书全面介绍了三维重建与渲染技术的分类、原理及其实现方法,深入探讨了NeRF和3DGS等前沿技术,并提供了实用的开发指南与性能优化策略。
第1章概述三维重建与渲染技术的基本概念、分类及其主流方法的实现原理,包括基于图像的渲染、MVS(多视图立体)、SfM、NeRF和3DGS,旨在为读者打下坚实的理论基础。
第2章详细讲解三维坐标系与空间投影的知识,重点介绍了几何变换和不同坐标系之间的映射关系,帮助读者理解三维物体在计算机中的表示方式。
第3章聚焦于三维渲染技术与实现,包括渲染技术基础、体渲染技术和纹理映射技术,从而构建具有真实感的三维场景。
第4章深入剖析NeRF核心技术与关键源码,介绍了获取和处理图像数据集以及采样优化过程的方法,为希望深入了解NeRF内部机制的读者提供指导。
第5章通过介绍NerfStudio平台,演示NeRF模型可视化开发与调试流程,为读者提供实战指导。
第6章专门讨论3DGS核心技术,涵盖三维高斯表示、渲染与光栅化、密度控制策略的思想与关键实现路径。
第7章介绍几种流行的三维重建的相关插件与应用实例,旨在提升读者的实际应用能力。
第8章探讨NeRF/3DGS的加速与性能优化策略,提供了具体的工具和技术建议,助力读者提高计算效率。
勘误与支持
尽管本书在撰写过程中经过多次校对与审阅,但由于内容涉及大量公式与源码实现,难免仍有疏漏。如你在阅读过程中发现错误或有改进建议,欢迎联系作者(邮箱:zongwave@hotmail.com),我们将及时修订并反馈更新内容。
致谢
本书的完成凝聚了作者团队多年来在图形渲染以及以NeRF与3DGS为代表三维重建技术的研究与实践积累,同时得到了行业、学界和开源社区的支持与启发。特别感谢所有在NeRF和3DGS社区中贡献模型、工具与论文的研究者与开发者,正是你们的持续探索推动了三维重建技术的不断跃迁与广泛应用。
宗炜:资深AI与图形图像工程师,长期专注于三维重建、神经渲染与异构计算优化。拥有十余年系统研发经验,参与多项图形图像与性能优化项目,获多项相关技术专利,并致力于三维表示技术从理论到工程落地的体系化实践。
巴·孟克吉尔格力:毕业于亚琛工业大学,拥有多年视频编解码开源框架开发经验,曾参与基于深度学习的场景深度估计、三维场景重建等多个研究项目。目前就职于Intel,从事AI大模型适配和优化等相关工作。
凌静:毕业于华东师范大学,曾任Intel 3D算法工程师,从事三维重建算法在Intel GPU平台上的部署适配与性能优化工作。曾为开源框架NerfStudio提供Zip-NeRF模型适配支持。
李建宇:毕业于复旦大学,专注于各类AI模型在Intel平台上的部署与优化,曾负责3DGS、NeRF等模型在Intel GPU上的移植工作。此前,他曾在S3 Graphics、ARM等企业从事Direct3D、OpenGL ES及Vulkan等图形驱动的开发。
许广新:曾任Intel数据中心AI训练高级经理,从事大语言模型、多模态模型及NeRF、3DGS等三维生成模型的训练与性能优化工作,拥有多项国际专利,在AI基础架构与模型性能优化领域具有丰富经验。
目 录 Contents
前言
第1章 三维重建与渲染技术概述和
实现原理1
1.1 三维重建原理与三维图形渲染主
流方法1
1.1.1 三维重建的基本原理2
1.1.2 三维图形渲染主流方法3
1.2 基于图像的渲染4
1.2.1 图像变形方法4
1.2.2 视图渐变的典型处理方式8
1.2.3 基于视图渐变的代码实现
解析12
1.3 MVS19
1.3.1 立体视觉的深度估计原理19
1.3.2 双视图几何25
1.3.3 多视图几何及其在三维重建
中的应用28
1.4 SfM32
1.4.1 基本流程33
1.4.2 场景图的构建与增强33
1.4.3 场景图构建关键算法:
RANSAC与PnP36
1.4.4 递增式三维重建算法38
1.5 NeRF40
1.5.1 体渲染视图合成40
1.5.2 神经隐式表示42
1.5.3 NeRF与体渲染44
1.6 3DGS47
1.7 小结48
第2章 三维坐标系与空间投影49
2.1 几何基础与线性变换49
2.1.1 空间基本元素与结构表达49
2.1.2 几何变换与仿射表达54
2.1.3 三维旋转的表示方法58
2.2 三维空间到设备坐标系的映射60
2.2.1 向量运算与几何变换60
2.2.2 矩阵运算与几何变换62
2.2.3 齐次坐标系70
2.2.4 相机几何模型与参数化75
2.2.5 透视投影与正交投影78
2.2.6 投影变换与视口映射83
2.3 三维物体的表示方法91
2.3.1 边界表示法91
2.3.2 体素表示法95
2.3.3 参数化表示法97
2.3.4 隐式表示法100
2.4 小结102
第3章 三维渲染技术与实现103
3.1 渲染技术基础103
3.1.1 渲染流水线处理阶段103
3.1.2 坐标空间变换115
3.1.3 三维场景构成119
3.2 体渲染技术123
3.2.1 光线投射在体渲染中的应用123
3.2.2 透射率函数与体渲染计算125
3.2.3 体渲染代码实现128
3.3 纹理映射技术132
3.3.1 基本原理132
3.3.2 纹理采样子系统135
3.3.3 纹理滤波子系统140
3.4 小结144
第4章 NeRF核心技术与关键
源码分析145
4.1 图像数据集的获取145
4.1.1 图像位姿获取145
4.1.2 空间点云生成152
4.2 场景坐标系156
4.2.1 NeRF与NDC156
4.2.2 空间收缩161
4.3 采样优化163
4.3.1 分级采样163
4.3.2 网格采样167
4.4 采样数据编码171
4.4.1 位置编码172
4.4.2 多分辨率的散列编码177
4.5 小结183
第5章 NeRF模型可视化开发
与调试184
5.1 NerfStudio简介与环境部署184
5.1.1 简介184
5.1.2 环境部署185
5.2 NerfStudio核心功能详解187
5.2.1 数据加载与预处理187
5.2.2 模型训练与评估189
5.2.3 可视化与结果导出191
5.2.4 性能分析与调试工具195
5.3 第三方模型集成与扩展指南196
5.3.1 管道196
5.3.2 NerfStudio扩展200
5.3.3 自定义方法扩展示例:
Zip-NeRF模型204
5.4 小结211
第6章 3DGS核心技术212
6.1 三维高斯表示212
6.1.1 基于点的三维场景表示212
6.1.2 三维高斯表示及参数化213
6.1.3 三维高斯表示的结构变体215
6.2 渲染与光栅化217
6.2.1 点基元的渲染方法217
6.2.2 3DGS渲染218
6.2.3 快速可微光栅化219
6.2.4 损失函数与优化策略222
6.3 密度控制策略222
6.3.1 自适应密度控制223
6.3.2 密度控制改进方法225
6.4 小结226
第7章 三维重建的相关插件与应用227
7.1 三维模型提取与交互渲染插件227
7.1.1 三维模型提取:基于
GauStudio227
7.1.2 基于PlayCanvas的交互渲染232
7.2 编辑与后期处理:基于
Blender插件238
7.2.1 插件安装与功能介绍239
7.2.2 插件应用240
7.2.3 插件优化245
7.3 小结245
第8章 NeRF/3DGS的加速与
性能优化246
8.1 配置GPU环境与安装Intel
PyTorch扩展包247
8.2 异构计算性能分析与优化实例248
8.2.1 阿姆达尔定律248
8.2.2 性能分析工具250
8.2.3 SYCL与DPC++优化实例
分析251
8.2.4 Zip-NeRF优化实例分析256
8.2.5 3DGS优化实例分析265
8.3 Gaudi加速计算平台与
SynapseAI273
8.3.1 Intel Gaudi简介273
8.3.2 Gaudi平台上AI模型的
迁移275
8.4 小结279