vcg函数值_几个经典的数学库之一学习---VCGlib(1)

1. VCG Libary是Visulization and Computer Graphics Libary(可视化与计算机图形学库)的缩写,是一个开源的C++模板库,用于三角网格和四面体网格的控制、处理和OpenGL显示。其中包含了超过100 000行的代码。基于该库,Visual Computing Lab开发了几个著名的工具,如metro和MeshLab。

VCG Libary是专门为处理三角网格而设计的,库很大,且提供了许多最先进的处理网格的功能,如:

*基于边坍塌(edge-collapse)二次误差的高质量网格简化(simplfication);

*高效的空间检索数据结构(uniform grids, hashed grids, kdtree, ...);

*先进的网格平滑和光顺算法;

*曲率计算;

*纹理坐标优化;

*Hausdorff距离计算;

*测地路径;

*网格修复能力

*等直面抽取和前沿的网格划分算法;

*泊松圆盘采样和其他的网格点采样算法;

*细分曲面。

2. 可以从VCG的官网中获取:

或者从github中下载:

下载后的vcg的库结构如下。

VCG Lib的大部分由头文件组成,下载后,将文件解压到一个vcglib文件夹中,然后将vcglib文件夹放到你的编译器的“include”目录中。然后使用时,只要包含其中需要的文件即可。

同上图,vcglib文件夹中,总共包含5个子文件夹:

*vcg:这是整个库的核心,其中定义了所有的算法和数据结构。该部分所有的C++代码都是STL支持的普通数据结构和算法,不包含任何其它标准库之外的库,而且可以发现,该部分只包含头文件(.h);

*wrap:这里包含一些针对特定需求/上下文/库的VCG概念的封装。例如,所有的用于计算机硬盘上很多格式的网格数据的导入和导出;用OpenGL渲染三角形网格的代码;普通GUI工具如跟踪球,等等;

*apps:这个文件夹包含一些用VCG Lib开发的命令行程序应用。

很多例子都能在MeshLab中找到,apps/simple文件夹包含了这些程序的一个基础的子集,是一个初学者很好的入口点;

*docs:文档(包括这个教程)

*eigenLib:线性代数的eigen库最近的稳定版本的一个副本(相当于就是借用第三方库了),VCGLib中的高级矩阵操作都是基于这个库的。

3 VCG中的邻接关系

VCG库不通过硬编码的方式来位置三角形与面的邻接关系。VCG依赖于保存在各种“Simplices”(简素)中的属性来位置。如在每一个面中定义vcg::face::VertexRef,该属性保存了三个指针,指向Vertex。所有的算法都依赖于vcg::face::VertexRef。去过缺少次属性,则定义没有错误࿰

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值