关于Polygon Soup的理解
什么是Polygon Soup
最近看的CG方面的论文中多次出现了Polygon Soup这个单词,中文直译过来是“多边形汤”,有点懵逼,于是查了一些资料了解了一下大致意思。先从维基百科上看起。
From Wikipedia
A polygon soup is a set of unorganized polygons, typically triangles, before the application of any structuring operation, such as e.g. octree grouping.[1]
The term must not to be confused with the “PolySoup”[2] operation available in the 3D package Houdini, whose goal is to optimize the storage space needed by some piece of geometry through the reduction of the underlying number of polygon soups used in its representation. This is accomplished by removing redundant data points (e.g. vertices with the same position) without altering the topology or assigned properties of the optimized geometry in relation to the input one. As a result of this optimization, there can be savings in the storage and processing of large polygon meshes. These savings can have a bigger impact the larger the input data is. For instance, fluid simulations, particle simulations, rigid-body simulations, environments, and character models can reach into the millions of polygons for feature films, incurring in large storage and read/write costs. In those cases, reducing the number of polygon soups required to represent such data can lead to important savings in storage use and compute time .
总结下来大概一下几点:
- polygon soup是无组织的多边形集合,例如三角片元等。就我理解,无组织的意思大概是无序,即多边形之间没有联系,不包含拓扑结构。
- 众所周知,对于三维场景模型往往需要一种结构对其进行管理,例如有基于空间的划分方法:均匀栅格,kd-tree等。基于物体的方法:BVH,BSP等。有了这些划分方法,我们可以更好的进行碰撞检测,可视性确定(visibility determination)。而polygon soup正是这些方法的输入,输出的是通过不同策略生产的有序的结构化数据。
- 它也是一些建模软件保存的模型格式,例如Maya,Houdini,Blender等。这中格式的文件能够帮助节约内存,提高I/O读写速率,对于超大几何网格模型还能够节约硬盘存储空间。
知乎上有个回答很形象
知乎
就是非结构化的多边形集合。与一般的Mesh相比,Mesh的三角形彼此之间是connected,而polygon soup就不见得了,例如:
这只壁虎的四肢和身体是没有连接的,相互穿插了