3D的表示方式除了点云外还有很多种,每种方法都有各自的特点和优势。

  1. 点云(point cloud)
    • 将场景表示为离散点的集合,每个点具有位置(x,y,z)属性,还可能有法线、颜色等可选属性
    • 优点是简单
    • 缺点是缺乏结构,都是一些离散的点,缺乏拓扑结构,如果想要获取物体表面的几何会比较困难
  2. 网格(Mesh)
    • 在点云的基础上添加了点和点之间的边,能够表示物体的几何结构
  3. 隐式神经场(Implicit Neural Field)
    • 将场景想象成一堆粒子,每个粒子有自己的颜色和密度。其中密度属性可以理解为光线照射到这个粒子上的穿透程度(透明度),不透明的点的密度大,透明的点密度小

    • 储存这些粒子的颜色和密度不是像点云那样显式保存,而是使用一个神经网络来隐式保存。

      • 具体来说:输入空间中的点的坐标 (x,y,z)(x, y, z)给神经网络,网络输出这个位置的颜色和密度
    • 拓展阅读【可选】:傅里叶变换在隐式神经场中的应用

      • 如果两个相距很近的点(输入很相似)输入网络,网络通常会输出相似的结果,这一般被称为网络的鲁棒性很好(即网络会将这些轻微的改变当作噪声,而不会影响输出结果)。但是在场景中可能会出现一些突变(高频细节,即相距很近的两个点差别却很大),神经网络对这种轻微的位置变化不敏感会导致表达的场景很模糊
      • 利用傅里叶变换的思想,将坐标 (x,y,z)(x, y, z)分解为多个频率,使得轻微的位置变化在频域空间内变化巨大

      参考网页

    • 神经辐射场(Neural Radiance Field,NeRF):引入了图形学中的体积渲染技术,NeRF是一个里程碑的技术,应用很广泛

  4. 符号距离场(Signed Distance Field,SDF)
    • 隐式神经场在表示3D场景中的细节表现很好,但是有时候我们需要表示一个物体的表面几何,方便下游应用使用(例如表示出了物体的表面几何,可以将这个物体与其它物体进行碰撞、光线反射等互动)
    • 符号距离场记录了空间中每个点到物体表面的距离(称为SDF值):物体内部距离为负,物体表面距离为0,物体外部距离为正
    • 只需要找到SDF值=0的地方,就可以得到物体的表面
    • 符号距离函数(Signed Distance Function,缩写也是SDF,注意和符号距离场进行区分):使用神经网络来隐式地表示场景,输入三维空间中的位置,输出这个点的SDF值
  5. 3D高斯泼溅(3D Gaussian Splatting,3DGS)
    • 针对NeRF这一技术时间消耗大的问题,3DGS将场景表示为多个椭球的集合
    • 类似于使用多个圆去拟合一个曲线,3DGS则使用多个三维的椭球去拟合3D形状
    • 是目前最新的3D表示方法,速度快(但是不代表在任何条件下都是最好,还是要看使用的目的)

参考资料

[1] 3D Generative Models: A Survey 中 3.2 3D Representations章节

[2] 3D Representation Methods: A Survey https://arxiv.org/pdf/2410.06475

转载时请包括本文地址:https://dw-dengwei.cn/posts/3D-Rep