无法在无头虚拟环境中 运行 meshlabserver 过滤器

Can't run meshlabserver filters on a headless virtual environment

我使用 sudo apt-get install meshlab

在 debian 9.4 上安装了 meshlab

首先尝试在过滤器列表中转储

sudo xvfb-run -a -s "-screen 0 800x600x24" meshlabserver -d filters

此日志失败

Loading Plugins:
Current Plugins Dir is: /usr/lib/meshlab/plugins 
Error in XMLFile: filter_measure.xml - line: -1, column: -1 - 
Error in XMLFile: filter_mutualinfo.xml - line: -1, column: -1 - 
Total 227 filtering actions
Total 13 io plugins
called here! 
Segmentation fault (core dumped)

并且在尝试 运行 过滤器时

sudo xvfb-run -a -s "-screen 0 800x600x24" meshlabserver -i original.obj -s /usr/lib/meshlab/plugins/filter_measure.xml

失败并显示此日志

script /usr/lib/meshlab/plugins/filter_measure.xml
Loading Plugins:
Current Plugins Dir is: /usr/lib/meshlab/plugins 
Error in XMLFile: filter_measure.xml - line: -1, column: -1 - 
Error in XMLFile: filter_mutualinfo.xml - line: -1, column: -1 - 
Total 227 filtering actions
Total 13 io plugins
Opening a file with extention obj
Mesh original.obj loaded has 22296 vn 7432 fn
Apply FilterScript: '/usr/lib/meshlab/plugins/filter_measure.xml'
Failure in parsing script /usr/lib/meshlab/plugins/filter_measure.xml
No root node with name FilterScript
Current rootname is MESHLAB_FILTER_INTERFACE

我做错了什么?

看起来在无头模式下尝试 运行 meshlabserver 是一个不可能的事情...请参阅此处的评论:"There are some filters using [an OpenGL] rendering context & GPU (e.g. Ambient Occlusion), that were needed as batch-able operations. This is why we had to include a rendering context in the initialization of MeshLabServer. We do not have an 'official' workaround for this."

(来源:https://github.com/cnr-isti-vclab/meshlab/issues/78

我认为你最好的机会是 运行 使用 X 而不是试图让它在无头模式下使用 xvfb-运行...