Spaces:
Runtime error
Runtime error
| Installation Guide | |
| ================== | |
| Python Installation | |
| ------------------- | |
| This package is available via ``pip``. | |
| .. code-block:: bash | |
| pip install pyrender | |
| If you're on MacOS, you'll need | |
| to pre-install my fork of ``pyglet``, as the version on PyPI hasn't yet included | |
| my change that enables OpenGL contexts on MacOS. | |
| .. code-block:: bash | |
| git clone https://github.com/mmatl/pyglet.git | |
| cd pyglet | |
| pip install . | |
| .. _osmesa: | |
| Getting Pyrender Working with OSMesa | |
| ------------------------------------ | |
| If you want to render scenes offscreen but don't want to have to | |
| install a display manager or deal with the pains of trying to get | |
| OpenGL to work over SSH, you have two options. | |
| The first (and preferred) option is using EGL, which enables you to perform | |
| GPU-accelerated rendering on headless servers. | |
| However, you'll need EGL 1.5 to get modern OpenGL contexts. | |
| This comes packaged with NVIDIA's current drivers, but if you are having issues | |
| getting EGL to work with your hardware, you can try using OSMesa, | |
| a software-based offscreen renderer that is included with any Mesa | |
| install. | |
| If you want to use OSMesa with pyrender, you'll have to perform two additional | |
| installation steps: | |
| - :ref:`installmesa` | |
| - :ref:`installpyopengl` | |
| Then, read the offscreen rendering tutorial. See :ref:`offscreen_guide`. | |
| .. _installmesa: | |
| Installing OSMesa | |
| ***************** | |
| As a first step, you'll need to rebuild and re-install Mesa with support | |
| for fast offscreen rendering and OpenGL 3+ contexts. | |
| I'd recommend installing from source, but you can also try my ``.deb`` | |
| for Ubuntu 16.04 and up. | |
| Installing from a Debian Package | |
| ******************************** | |
| If you're running Ubuntu 16.04 or newer, you should be able to install the | |
| required version of Mesa from my ``.deb`` file. | |
| .. code-block:: bash | |
| sudo apt update | |
| sudo wget https://github.com/mmatl/travis_debs/raw/master/xenial/mesa_18.3.3-0.deb | |
| sudo dpkg -i ./mesa_18.3.3-0.deb || true | |
| sudo apt install -f | |
| If this doesn't work, try building from source. | |
| Building From Source | |
| ******************** | |
| First, install build dependencies via `apt` or your system's package manager. | |
| .. code-block:: bash | |
| sudo apt-get install llvm-6.0 freeglut3 freeglut3-dev | |
| Then, download the current release of Mesa from here_. | |
| Unpack the source and go to the source folder: | |
| .. _here: https://archive.mesa3d.org/mesa-18.3.3.tar.gz | |
| .. code-block:: bash | |
| tar xfv mesa-18.3.3.tar.gz | |
| cd mesa-18.3.3 | |
| Replace ``PREFIX`` with the path you want to install Mesa at. | |
| If you're not worried about overwriting your default Mesa install, | |
| a good place is at ``/usr/local``. | |
| Now, configure the installation by running the following command: | |
| .. code-block:: bash | |
| ./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 | |
| Finally, build and install Mesa. | |
| .. code-block:: bash | |
| make -j8 | |
| make install | |
| Finally, if you didn't install Mesa in the system path, | |
| add the following lines to your ``~/.bashrc`` file after | |
| changing ``MESA_HOME`` to your mesa installation path (i.e. what you used as | |
| ``PREFIX`` during the configure command). | |
| .. code-block:: bash | |
| 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/ | |
| .. _installpyopengl: | |
| Installing a Compatible Fork of PyOpenGL | |
| **************************************** | |
| Next, install and use my fork of ``PyOpenGL``. | |
| This fork enables getting modern OpenGL contexts with OSMesa. | |
| My patch has been included in ``PyOpenGL``, but it has not yet been released | |
| on PyPI. | |
| .. code-block:: bash | |
| git clone https://github.com/mmatl/pyopengl.git | |
| pip install ./pyopengl | |
| Building Documentation | |
| ---------------------- | |
| The online documentation for ``pyrender`` is automatically built by Read The Docs. | |
| Building ``pyrender``'s documentation locally requires a few extra dependencies -- | |
| specifically, `sphinx`_ and a few plugins. | |
| .. _sphinx: http://www.sphinx-doc.org/en/master/ | |
| To install the dependencies required, simply change directories into the `pyrender` source and run | |
| .. code-block:: bash | |
| $ pip install .[docs] | |
| Then, go to the ``docs`` directory and run ``make`` with the appropriate target. | |
| For example, | |
| .. code-block:: bash | |
| $ cd docs/ | |
| $ make html | |
| will generate a set of web pages. Any documentation files | |
| generated in this manner can be found in ``docs/build``. | |