Chapter 27. CPU rendering with Mesa 3D

CPU rendering means doing visualization on a machine without any Graphical Processor Unit (GPU), thus the rendering relies only on CPU computation.

Why ?

Using Open Inventor without any GPU makes sense in several use cases. The most common use case is for cloud server based applications where the rendering is done on a remote server that does not have any GPU. It is particularly interesting to reduce server costs.

Another use case is the document generation. Publishing document that includes 3D visualization can also be done using workstation or server without GPU.

A third use case is automatic testing. It could be very useful to launch tests that include 3D visualization on any type of machine having or not having a graphic board.

How

CPU rendering using Mesa is only available from Open Inventor 10.11 and has only been tested on Ubuntu 20.04. In order to run Open Inventor without a GPU, the Mesa 3D Graphics Library (https://www.mesa3d.org) must be installed on the target linux machine or server with, at least, version 21.3.5. Furthermore the environment variable OIV_ENABLE_MESA_RENDERING must be set to 1 to support the CPU rendering with Mesa. See SoPreferences( C++ | Java | .NET ).

Performances

In most cases, using Open Inventor with Mesa is slower than using a GPU. But in many cases, it provides enough performance for an acceptable user experience.

Limitations

Despite the fact that Mesa uses the compatibility profile of OpenGL, some features are not yet supported: