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