wsl2使用open3d等进行图像绘制

在~/.bashrc文件中添加两个环境变量

export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
export LIBGL_ALWAYS_INDIRECT=0

第一行是让wsl将openGL命令(图形绘制命令)输出到哪里,也就是x-server的位置,这里指的就是我们本地的windows主机在wsl中的ip地址。

第二行禁止永远使用间接渲染,如果某些程序想要使用直接渲染那就让他使用直接渲染(关键,open3d只能直接调用gpu进行渲染,所有的错误都是由此产生)。

设置本地x-server

这里一定要禁止native openGL,这里的意思应该是x.org会将一部分glx的某些命令变为使用wgl实现,open3d只能直接调用gpu进行渲染,所以这里一定要禁止!否则会报错

 

 开启x-server,图像正常显示了!

可能的报错

解决方式都是禁止open3d调用wgl,因为open3d没有办法调用wgl的接口

[Open3D WARNING] GLFW Error: GLX: Failed to create context: GLXBadFBConfig
[Open3D WARNING] Failed to create window
[Open3D WARNING] [DrawGeometries] Failed creating OpenGL window.

error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast

猜你喜欢

转载自blog.csdn.net/zxyOVO/article/details/130415765