项目场景:
windows11 WSL2 做点云处理时,需要使用python open3d库做点云可视化。本文章旨在记录并分享方法。
方法
1. wsl设置
安装xfce4
sudo apt-get update
sudo apt-get install xfce4
设置wsl环境,其中xxx.xxx.xxx.xxx(ip地址)为windows系统的ipv4地址,可在cmd中输入ipconfig查看。
export DISPLAY=xxx.xxx.xxx.xxx:0
export LIBGL_ALWAYS_INDIRECT=0
或者
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
export LIBGL_ALWAYS_INDIRECT=0
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print $2}’):0自动更新ip地址,不用后续重启电脑时修改ip地址。但我在用的时候发现链接的地址可能会变成xxx.255.255.xxx,并且会报错,具体原因未知,输入具体的IPv4地址没问题。
在open3d点云显示时,会有swrast_dri.so报错,需要做如下设置。
cd /usr/lib/
sudo mkdir dri
cd dri
sudo ln -s /lib/x86_64-linux-gnu/dri/swrast_dri.so swrast_dri.so
并在conda环境中执行:
conda install -c conda-forge gcc
2. windows11安装VcXsrv
点击download安装即可。安装完成后启动VcXsrv。
注意选择Disable access control,取消Native opengl选项,否则open3d在显示点云时会报错。具体原因参考wsl2使用open3d等进行图像绘制
设置完成后,使用open3d显示点云,效果如下。
问题与解决方法
问题1:
[Open3D WARNING] GLFW Error: GLX: Failed to create context: GLXBadFBConfig
[Open3D WARNING] Failed to create window
[Open3D WARNING] [DrawGeometries] Failed creating OpenGL window.
解决方法:VcXsrv设置出现问题,需要取消选择Native opengl。
问题2:
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /u sr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
GLFW Error: GLX: Failed to create context: GLXBadFBConfig
Failed to create window
[DrawGeometries] Failed creating OpenGL window.
解决方法:
cd /usr/lib/
sudo mkdir dri
cd dri
sudo ln -s /lib/x86_64-linux-gnu/dri/swrast_dri.so swrast_dri.so
问题3:
libGL error: MESA-LOADER: failed to open swrast: /home/wyc/anaconda3/envs/randlanet/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (req uired by /lib/x86_64-linux-gnu/libLLVM-13.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
GLFW Error: GLX: Failed to create context: GLXBadFBConfig
Failed to create window
[DrawGeometries] Failed creating OpenGL window.
解决方法:
在conda环境中:
conda install -c conda-forge gcc
参考文章:
[已解决] libGL error: MESA-LOADER: failed to open swrast
wsl2使用open3d等进行图像绘制
为wsl2安装图形化界面