论文来源:the journal of open source software
出自:代尔夫特理工(Delft University of Technology),3D geoinformation research group
作者:liangliang nan
摘要
Easy3D是一个用于3D建模、几何处理和渲染的开源库。它是用c++实现的,设计的重点是简单性(即,处理和可视化3D数据可以通过几行API调用来实现)。Easy3D的贡献有三个方面:(1)用于表示常见3D数据的高效数据结构(即点云、表面网格、多面体网格和图形);(2)用于处理3D数据的常用算法;(3)用于3D数据可视化的标准技术。数据结构、几何处理算法和绘制技术可以无缝且容易地集成在一起,用于研究原型或3D应用的快速开发。图1和图2分别显示了Easy3D提供的数据结构和呈现功能的概述。
Easy3D中的数据结构,从左到右依次是:点云,表面网格,多面体网格和图结构。
Easy3D的渲染函数总览。
现有3D点云处理开源库的缺陷:
开发端到端3D数据处理软件通常需要集成不同的功能,如数据结构(用于表示和存储3D数据)、算法(用于处理和分析)和渲染(用于可视化数据和派生信息)。然而,每一个开源软件都有一个特定的重点,整合不同软件包提供的功能并不是一件容易的任务。例如,MeshLab 和CloudCompare专注于易于使用的gui(图形用户界面)来处理网格和点云。CGAL, libigl和PMP强调复杂的网格处理算法的实现,缺乏渲染和交互能力。因此,开发过程对开发人员在所有相关方面的专业知识有很高的要求。
Easy3D的核心特征:
1、 用于表示和管理3D模型的高效数据结构(如点云、表面网格、多面体网格和图形)。易于添加/访问每个元素的任意类型的属性。非流形性在从文件加载模型时自动解决。
2、 一组广泛使用的算法,例如点云正态估计/重定向,泊松表面重建,RANSAC,网格简化,平滑,参数化。
3、 大量的渲染技术,例如点/线imposters,环境遮挡(SSAO),硬阴影(阴影地图),软阴影(PCSS),眼球照明(渲染点云没有正常信息),和透明度(平均颜色混合,双深度剥离)。
4、 OpenGL和GLSL的高级封装为方便和高效的渲染(基于现代和更快的编程着色风格渲染,即没有固定的函数调用)。客户端代码不需要触及OpenGL的底层api。
5、 详细教程演示了各种api的使用,以了解数据结构、渲染技术和3D建模和几何处理算法。
6、 可以直接用于各种格式的3D场景的可视化工具,也可以很容易地扩展。一个方便的工具Mapple从Easy3D库创建,用于渲染和处理3D数据