简化三维模型。
语法
scene ST_Simplify(scene sc, cstring rules);
参数
参数名称 | 描述 |
---|---|
sc | scene对象。 |
rules | 简化规则。 |
描述
对三维模型进行几何简化,可传入JSON模型的规则,JSON格式如下:
{
"mothed": "percent"/"error", default is "percent",
"threshold": default is 0.5,
"blacklist" : ["wall","glass"],
"boundary": default is true, simplify the boundary,
"meshes":[
{"names": ["m0","m1"], "threshold": 0.5},
{"names": ["m2","m3"], "threshold": 0.001}
]
}
JSON字段含义如下:
参数 | 描述 |
---|---|
mothed | 简化控制方式,可选择:
说明 percent为简化后的三角面数量与原模型三角面数量的比值, percent越小简化越多。error的计算方式为新顶点到原顶点的距离,error越大简化越多。 |
threshold | 简化的阈值,取值范围见mothed参数描述。 |
blacklist | 对模型中的Mesh按name进行过滤,黑名单中的Mesh不简化。 |
boundary | 是否简化边界,默认为true。 说明 简化边界会导致模型坍塌、破洞。 |
meshes.names | 对模型中的Mesh按name分组简化,不同组可设置不同的简化阈值。 |
meshes.threshold | meshes.names对应的简化阈值。 说明 可对一个复杂的模型,进行分组简化,如提高精模部分的简化比、减少粗模部分的简化比。 |
模型简化可以在保持显示效果的同时,大幅降低模型的空间占用,示例如下:
- 简化比:100%
- 占用空间:96 MB
- 模型效果:
- 简化比:5%几何简化 + 25%图片简化
- 占用空间:2.9 MB
- 模型效果:
示例
SELECT ST_Simplify(data,
'{
"threshold": 0.1,
"mothed": "percent",
"blacklist":["Mesh.012", "Mesh.009", "Mesh.005"],
"meshes": [
{"names":["Mesh.007"], "threshold": 0.01},
{"names":["Mesh.004"], "threshold": 0.3}
]}') from t;
---------------------------
0x.....