安装pyrender和OSMesa

1)安装 pyrender

Pyrender是一个基于OpenGL的库,可以加载和渲染三维网格、点云、相机等对象3

pip install pyrender

2)理解PyOpenGL和OSMesa的关系是:

PyOpenGL是Python的OpenGL绑定库(接口壳子),它提供了在Python中使用OpenGL的接口。

OSMesa是OpenGL的一个实现,它允许在没有图形硬件的系统上进行OpenGL渲染,通常用于离屏渲染。OSMesa实现了OpenGL的API,但不需要图形硬件,渲染是通过软件模拟来完成的。

PyOpenGL可以使用OSMesa作为其后端之一,来在没有GPU的系统上进行OpenGL渲染。

下面的安装参考官方连接的翻译:Installation Guide — pyrender 0.1.45 documentation

3)安装 OSMesa

第一步,您需要重建并重新安装 Mesa,以支持快速离屏渲染和 OpenGL 3+ 上下文。我建议从源代码安装,但您也可以.deb 在 Ubuntu 16.04 及更高版本上尝试我的安装。

从源头构建

首先,通过apt或系统的包管理器安装构建依赖项。

sudo apt-get install llvm-6.0 freeglut3 freeglut3-dev

然后,从此处下载 Mesa 的当前版本。解压源码并进入源码文件夹:

tar xfv mesa-18.3.3.tar.gz
cd mesa-18.3.3

替换PREFIX为您要安装 Mesa 的路径。如果您不担心覆盖默认的 Mesa 安装,那么/usr/local.

现在,通过运行以下命令来配置安装:

./configure --prefix=PREFIX                                   \
            --enable-opengl --disable-gles1 --disable-gles2   \
            --disable-va --disable-xvmc --disable-vdpau       \
            --enable-shared-glapi                             \
            --disable-texture-float                           \
            --enable-gallium-llvm --enable-llvm-shared-libs   \
            --with-gallium-drivers=swrast,swr                 \
            --disable-dri --with-dri-drivers=                 \
            --disable-egl --with-egl-platforms= --disable-gbm \
            --disable-glx                                     \
            --disable-osmesa --enable-gallium-osmesa          \
            ac_cv_path_LLVM_CONFIG=llvm-config-6.0

最后,构建并安装 Mesa。

make -j8
make install

~/.bashrc最后,如果您没有在系统路径中安装 Mesa,请在更改MESA_HOME为 mesa 安装路径(即您 PREFIX在配置命令期间使用的路径)后,将以下行添加到您的文件中。

MESA_HOME=/path/to/your/mesa/installation
export LIBRARY_PATH=$LIBRARY_PATH:$MESA_HOME/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MESA_HOME/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$MESA_HOME/include/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$MESA_HOME/include/

安装 PyOpenGL 的兼容分支

接下来,安装并使用我的PyOpenGL. 该分支允许使用 OSMesa 获取现代 OpenGL 上下文。我的补丁已包含在 中PyOpenGL,但尚未在 PyPI 上发布。

git clone https://github.com/mmatl/pyopengl.git
pip install ./pyopengl

如何使用

PYOPENGL_PLATFORM=osmesa python render.py
 

PYOPENGL_PLATFORM变量可以控制PyOpenGL导入和使用哪个OpenGL平台/版本。

默认情况下,它会先尝试导入基于系统的GL库的平台,即gl平台。

但是在你的环境中,似乎没有正确安装对应的GL库,所以导入gl平台时导致错误。

osmesa平台是PyOpenGL提供的一个纯软件实现的OpenGL平台。

它不依赖任何硬件GL库,完全用Python代码实现了一个最小OpenGL子集。

当设置PYOPENGL_PLATFORM=osmesa时,PyOpenGL会导入这个纯软件实现的osmesa平台。

猜你喜欢

转载自blog.csdn.net/u010087338/article/details/132396492