Yes, those instructions do apply to you. VirtualGL has to use the
"root" X server (Display :0, typically) on the server machine in order
to access the GPU. We refer to this as the "3D X server." FreeNX will
be acting as the "2D X server", AKA the "X proxy." You need both.
VirtualGL redirects the 3D rendering from OpenGL application windows
into off-screen Pbuffers on the 3D X server (one Pbuffer per OpenGL
application window), then it reads back the rendered 3D images in real
time from the Pbuffers and blits the images into the corresponding
application windows in the 2D X server/X proxy instance. NX is sort of
a cross between remote X and an X proxy. It runs an X server (nxproxy)
on both the server and client machines. The server-side nxproxy doesn't
actually display anything. It just receives the X11 commands from
applications and compresses/buffers them for transmission to the
client-side nxproxy, which handles decompression and drawing and caching.
Once you have configured VirtualGL and followed the sanity check
procedure to verify that it can properly access the 3D X server, then it
should be a simple matter of executing
vglrun {application}
in your FreeNX sessions.
VirtualGL is only used if you explicitly invoke it with vglrun. Unless
all of your users are using a very heavy-hitting 3D application at the
same time, it's unlikely that the GPU will become a bottleneck. There
are numerous installations of VirtualGL worldwide that share a single
GPU among 40 or 50 users. The caveat is that you should use a high-spec
GPU, like a mid-range or high-end Quadro board, if you plan to share it
among that many users.