27.2. How Does Remote Rendering Work?

The most common case currently is a remote server machine running Unix or Linux plus a remote viewing tool like VNC. As mentioned previously, the X Window system has an integral concept of rendering over a network. By simply setting the DISPLAY environment variable, an application can run on one machine and render on any accessible X server on the network. A machine may have an X server running that owns the screen of its attached monitor (or monitors). It may also have additional X servers running, for example Xvnc, that are not associated with a physical screen. This makes it possible for multiple graphics applications to run on the same server machine, connected to different X servers, without conflicts over (or even use of) the attached screen.

When Remote Rendering is enabled, Open Inventor (running on a Unix server machine) opens a normal X window on the target display, but does not try to initialize OpenGL on that window. Instead Open Inventor creates an off-screen buffer on the server machine and initializes OpenGL on that buffer. All 3D rendering is done in the off-screen buffer on the remote machine. Rendering can be hardware accelerated if the remote machine supports the OpenGL “pbuffer” extension. When each 3D image is complete, Open Inventor reads back the rendered image and sends it to the target display.

In most cases this process is transparent to the Open Inventor application. If the application has callbacks or custom nodes that make direct calls to OpenGL, they should work as long as they use the OpenGL render context provided by Open Inventor. This context will be associated with the off-screen buffer.

Remote Rendering using VNC

Figure 27.2. Remote Rendering using VNC



Limitations of Remote Rendering

Support for stencil buffer, accumulation buffer, antialiasing and other OpenGL features depends on the capabilities of the remote server machine. OpenGL extensions required for advanced rendering techniques like bump mapping and order-independent transparency may not be available on the server machine.

OpenGL hardware (quad buffered) stereo is not supported because no OpenGL commands are sent to the local machine. However software stereo modes like anaglyph (red/green) and interlaced images are supported.

Overlay planes are not supported when using remote rendering.