VirtualGL

Esto limita el tipo de máquina que remotamente puede mostrar una aplicación 3D utilizando este método.

La renderización indirecta puede demostrarse suficientemente funcional si la red es lo suficientemente rápida (si usa Gigabit Ethernet, por ejemplo), si la aplicación no modifica dinámicamente la geometría del objeto que se representa, si la aplicación utiliza listas de pantalla, y si la aplicación utiliza una gran cantidad de texturas.

Para complicar aún más las cosas, algunas extensiones OpenGL no funcionan en un entorno de representación indirecta.

Si la representación 3D se produce en el servidor de aplicaciones, solo las imágenes 2D resultantes deben enviarse al escritorio del usuario.

Biblioteca (informática) VirtualGL utiliza "GLX duplicidad" para realizar el procesamiento OpenGL en el servidor de aplicaciones.

Se utilizan los comandos GLX a contextos de procesamiento OpenGL se unen a un particular x ventana, obtener una lista de formatos de píxel que el x mostrar apoyos, etc.. VirtualGL aprovecha una característica en Unix y Linux que permite "cargar" una biblioteca en una aplicación, efectivamente interceptar (AKA "interposición") cierta función llama a que la aplicación podría realizar normalmente shared bibliotecas con la que está vinculado.

Una vez que VirtualGL está precargado en una aplicación Unix o Linux OpenGL, intercepta las llamadas a funciones de la aplicación GLX y les reescribe tal que la GLX correspondiente comandos se envían al servidor de aplicaciones x display, que presumiblemente tiene un acelerador de hardware 3D conectado.

Como VirtualGL redirige los comandos GLX fuera de la pantalla de destino X, puede utilizarse para agregar soporte 3D acelerado a servidores proxy X (como VNC) así como para prevenir el renderizado indirecto de OpenGL al usar una pantalla remota X.

Usar VirtualGL en concierto con VNC u otro proxy X permite que varios usuarios simultáneamente ejecuten aplicaciones 3D en un servidor de aplicación único y varios clientes para compartir cada sesión.

TurboVNC extiende también TightVNC para incluir doble búfer en el lado del cliente y otras características dirigidas a aplicaciones 3D, así como plena compatibilidad con plataformas Solaris.

Cuando se usa el X11 Image Transport (anteriormente "modo de Proxy"), los renderizados 3D y 2D se producen en el servidor de aplicaciones. VirtualGL redirige los comandos 3D desde la aplicación al hardware acelerador 3D, lee hacia atrás las imágenes procesadas y les dibuja como una serie de mapas de bits sin comprimir en el proxy X (VNC o sistema similar). Mientras, los comandos de dibujo 2D (comandos X11) de la aplicación se envían al servidor proxy X directamente. El proxy X es el único responsable de la compresión de las imágenes y su envío a los clientes remotos.
Cuando se utiliza el transporte de imagen de CFR (anteriormente "modo directo"), la representación 3D se produce en el servidor de aplicaciones, pero la representación 2D se produce en el equipo cliente. VirtualGL comprime las imágenes renderizadas desde la aplicación 3D y los envía como un flujo de vídeo para el cliente, que descomprime y muestra la secuencia de vídeo en tiempo real.