描述错误
当我尝试可视化点云时,Open3d 似乎使 Python 崩溃。
再现
重现行为的步骤:
open3d.visualization.draw_geometries([pcd])
预期行为
在 Open3D 的先前版本中,会打开一个窗口来渲染点云数据。
截图
环境(请填写以下信息):
conda install -c open3d-admin open3d
附加上下文
这是我从 MacOS 得到的错误
`进程:python3.8 [3820]
路径:/Users/USER/*/python
标识符:python3.8
版本:0
代码类型:X86-64(原生)
父进程:python3.8 [3649]
负责人:python [3457]
用户名:501
日期/时间:2020-11-18 21:11:48.429 -0500
操作系统版本:macOS 11.0.1 (20B29)
报告版本:12
匿名 UUID:A4BB0EE5-6C43-8F24-446E-94DCC16B7B83
启动后唤醒时间:25000 秒
系统完整性保护:已启用
崩溃线程:0 调度队列:com.apple.main-thread
异常类型:EXC_BAD_ACCESS (SIGSEGV)
异常代码:KERN_INVALID_ADDRESS 在 0x0000000000000000
例外说明:EXC_CORPSE_NOTIFY
终止信号:分段错误:11
终止原因:命名空间信号,代码 0xb
终止进程:ex handler [3820]
接近 0 的 VM 区域:
-->
__TEXT 10f1b1000-10f4b9000 [ 3104K] rx/rwx SM=COW /用户/ / .8
线程 0 崩溃::调度队列:com.apple.main-thread
0 ??? 000000000000000000 0 + 0
1 pybind.cpython-38-darwin.so 0x000000012a2a9d2d open3d::visualization::Visualizer::InitOpenGL() + 141
2 pybind.cpython-38-darwin.so 0x000000012a29f406 open3d::visualization::Visualizer::CreateVisualizerWindow(std::__1::basic_string
3 pybind.cpython-38-darwin.so 0x000000012a289f7b open3d::visualization::DrawGeometries(std::__1::vector<:__1::shared_ptr i="17">, std::__1::allocator<:__1: :shared_ptr i="18"> > > const&, std::__1::basic_string
4 pybind.cpython-38-darwin.so 0x0000000129f2fc87 void pybind11::cpp_function::initialize<:visualization::pybind_visualization_utility_methods i="27">, std::__1::allocator<:__1::shared_ptr i="2 > > > const&, std::__1::basic_string
型号:MacBookPro14,1,BootROM 429.50.1.0.0,2 个处理器,双核 Intel Core i5,2.3 GHz,8 GB,SMC 2.43f10
显卡:kHW_IntelIrisGraphics640Item、Intel Iris Plus Graphics 640、spdisplays_builtin
内存模块:BANK 0/DIMM0、4 GB、LPDDR3、2133 MHz、[已移除]、[已移除]
内存模块:BANK 1/DIMM0、4 GB、LPDDR3、2133 MHz、[已移除]、[已移除]
`
感谢有用的堆栈跟踪! 我相信这是当我们在 0.11.1 中更新到新版本的 Filament 库时引起的,这在 draw_geometries() 使用原始 OpenGL 时似乎会导致问题,因为 Filament 的 BlueGL shim 没有更新 GL 函数指针。 我们正在解决这个问题。 在此之前,有两种解决方法:使用没有问题的 0.11.0,或者从源代码构建并传递-DBUILD_GUI=OFF
(此构建没有 Filament)。
我怎么解决这个问题? 我试过可视化功能在 0.9.0 及更低版本上工作,但它在更高版本上崩溃? 我也在使用 MacO。
最有用的评论
感谢有用的堆栈跟踪! 我相信这是当我们在 0.11.1 中更新到新版本的 Filament 库时引起的,这在 draw_geometries() 使用原始 OpenGL 时似乎会导致问题,因为 Filament 的 BlueGL shim 没有更新 GL 函数指针。 我们正在解决这个问题。 在此之前,有两种解决方法:使用没有问题的 0.11.0,或者从源代码构建并传递
-DBUILD_GUI=OFF
(此构建没有 Filament)。