MeshLabServer - 简化:Quadric Edge Collapse Decimation (WITH TEXTURE) 失败
MeshLabServer - Simplification : Quadric Edge Collapse Decimation (WITH TEXTURE) Failure
我测试了一些抽取/简化工具,以减少许多以编程方式表示 3D 模型的 OBJ 文件的三角形数量。
我对 MeshLab 中的函数“简化:二次边折叠抽取(带纹理)”有疑问。
当我 运行 函数时,我收到消息:
Filter failure message
我找到了 IDE 的解决方法,我应用函数 Filters / Texture / Converts PerVertex UV into PerWedge UV 然后应用简化过滤器...
但是在 MeshLabXML api 中我找不到转换 UV 纹理坐标的滤镜...
有人遇到过这个问题吗?并解决了?
您有两种选择:
首先需要两步:
- 使用命令
meshlabserver -i inputMesh.obj -o tmpMesh.obj -m wt
将网格转换为逐楔形纹理
- 使用
meshlabserver -i tmpMesh.obj -o outputMesh.obj -m wt -s myScript.mlx
应用您的其他过滤器
第二种方法是在调用 Simplification: Quadric Edge ...
之前在 mlx 脚本中调用过滤器 Convert PerVertex UV into PerWedge UV
,一步完成所有操作。另外,我建议大家理智地打电话给 Remove Unreferenced Vertices
。
尝试将此脚本保存到名为 textureSimplify.mlx
的文件中
<!DOCTYPE FilterScript>
<FilterScript>
<filter name="Remove Unreferenced Vertices"/>
<filter name="Convert PerVertex UV into PerWedge UV"/>
<filter name="Simplification: Quadric Edge Collapse Decimation (with texture)">
<Param value="3000" name="TargetFaceNum" description="Target number of faces" isxmlparam="0" tooltip="" type="RichInt"/>
<Param value="0" name="TargetPerc" description="Percentage reduction (0..1)" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="0.3" name="QualityThr" description="Quality threshold" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="1" name="Extratcoordw" description="Texture Weight" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="false" name="PreserveBoundary" description="Preserve Boundary of the mesh" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="1" name="BoundaryWeight" description="Boundary Preserving Weight" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="true" name="OptimalPlacement" description="Optimal position of simplified vertices" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="true" name="PreserveNormal" description="Preserve Normal" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="true" name="PlanarQuadric" description="Planar Simplification" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="false" name="Selected" description="Simplify only selected faces" isxmlparam="0" tooltip="" type="RichBool"/>
</filter>
</FilterScript>
编辑行 <Param value="3000" name="TargetFaceNum"
将值 3000 更改为您想要的面数,然后使用以下命令执行脚本:
> meshlabserver -i inputMesh.obj -o outputMesh.obj -m wt -s textureSimplify.mlx
我测试了一些抽取/简化工具,以减少许多以编程方式表示 3D 模型的 OBJ 文件的三角形数量。
我对 MeshLab 中的函数“简化:二次边折叠抽取(带纹理)”有疑问。
当我 运行 函数时,我收到消息: Filter failure message
我找到了 IDE 的解决方法,我应用函数 Filters / Texture / Converts PerVertex UV into PerWedge UV 然后应用简化过滤器... 但是在 MeshLabXML api 中我找不到转换 UV 纹理坐标的滤镜...
有人遇到过这个问题吗?并解决了?
您有两种选择:
首先需要两步:
- 使用命令
meshlabserver -i inputMesh.obj -o tmpMesh.obj -m wt
将网格转换为逐楔形纹理
- 使用
meshlabserver -i tmpMesh.obj -o outputMesh.obj -m wt -s myScript.mlx
应用您的其他过滤器
第二种方法是在调用 Simplification: Quadric Edge ...
之前在 mlx 脚本中调用过滤器 Convert PerVertex UV into PerWedge UV
,一步完成所有操作。另外,我建议大家理智地打电话给 Remove Unreferenced Vertices
。
尝试将此脚本保存到名为 textureSimplify.mlx
<!DOCTYPE FilterScript>
<FilterScript>
<filter name="Remove Unreferenced Vertices"/>
<filter name="Convert PerVertex UV into PerWedge UV"/>
<filter name="Simplification: Quadric Edge Collapse Decimation (with texture)">
<Param value="3000" name="TargetFaceNum" description="Target number of faces" isxmlparam="0" tooltip="" type="RichInt"/>
<Param value="0" name="TargetPerc" description="Percentage reduction (0..1)" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="0.3" name="QualityThr" description="Quality threshold" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="1" name="Extratcoordw" description="Texture Weight" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="false" name="PreserveBoundary" description="Preserve Boundary of the mesh" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="1" name="BoundaryWeight" description="Boundary Preserving Weight" isxmlparam="0" tooltip="" type="RichFloat"/>
<Param value="true" name="OptimalPlacement" description="Optimal position of simplified vertices" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="true" name="PreserveNormal" description="Preserve Normal" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="true" name="PlanarQuadric" description="Planar Simplification" isxmlparam="0" tooltip="" type="RichBool"/>
<Param value="false" name="Selected" description="Simplify only selected faces" isxmlparam="0" tooltip="" type="RichBool"/>
</filter>
</FilterScript>
编辑行 <Param value="3000" name="TargetFaceNum"
将值 3000 更改为您想要的面数,然后使用以下命令执行脚本:
> meshlabserver -i inputMesh.obj -o outputMesh.obj -m wt -s textureSimplify.mlx