将sfmesh/IndexSurface中坐标距离在给定阈值内的顶点焊接在一起(纹理坐标差异也要在阈值内),并移除重复顶点。
语法
sfmesh ST_3DRemoveDuplicateVertex(sfmesh sfmesh, float8 dist_threshold);
返回值
返回焊接后的sfmesh对象。
参数
参数名称 | 描述 |
sfmesh | 模型对象。 |
dist_threshold | 焊接距离阈值。 |
描述
将sfmesh/IndexSurface中空间坐标距离、纹理坐标差异在给定阈值内的顶点焊接在一起,其中距离计算使用笛卡尔坐标系距离。
效果示意
原数据(50.2 MB)
顶点焊接结果(20.2 MB): dist_threshold = 0.01
顶点焊接结果(3.3 MB): dist_threshold = 0.1
顶点焊接结果(0.63MB): dist_threshold = 1 (会丢失大量细节)
示例
SELECT ST_AsText(ST_3DRemoveDuplicateVertex('MESHGEOM(PATCH(INDEXSURFACE(VERTEX(0 0 0, 1 0 0, 0 1 0, 1 0.01 0, 0.01 0 0, 0 -1 0), INDEX((0,1,2),(3,4,5)))))'::meshgeom, 0.1));
-------------------------------------------------------------------------------------------------
{"version" : 1, "root" : 0, "meshgeoms" : ["MESHGEOM(PATCH(INDEXSURFACE Z (VERTEX(0 0 0,1 0 0,0 1 0,0 -1 0),INDEX((0,1,2),(1,0,3)))))"], "primitives" : [{"meshgeom" : 0}], "nodes" : [{"primitive" : 0}]}
文档内容是否对您有帮助?