众所周知,Mesh网格是三维重建的常用手法,通过顶点-三角面的形式来完成对三维物体的表达。其中,最常见的Mesh网格文件格式就是obj格式。看起来复杂的三维形状其实在数值表示上是很简单的,大家跟我一起来做个小实验就好:
vim a.obj
新建一个.obj
文件,然后在里面填入以下内容:
v -0.3 0.2 0.3
v 0.3 0.2 0.3
v 0.3 0.2 -0.3f 1 2 3
三个v和1个f,我们保存退出以后,即可用MeshLab打开这个a.obj
文件。发现效果如下:
我们发现,这就是一个三角形:在文件中,三角形的顶点用三个v表示,f表示三个顶点的一个三角面。f后面的三个数字表示顶点的索引值,一个用三个顶点,对应的索引值是[1,2,3]。
根据这个规律,我们可以利用6000多个顶点以及对应的三角面,来表示一个人体形状:
我放大局部,随便点击一个小三角形就可以看到这个小三角形的信息:
就是这么简单!