PDA

View Full Version : Which one is responsible drawing.



Kobe Bryant
01-16-2006, 05:34 PM
If I run an OpenGL application remotely,
which one is doing the drawing?
The one that I am sitting(server) or the other machine that I logged on (client)?
What's gonna happen the server does not support OpenGL?

It's a lit bit confusing.

-K. Bryant

songho
01-16-2006, 09:33 PM
Similar to X-Window client/server architecture, the server in OpenGL is a computer that renders graphics on the screen, and the client in OpenGL is a computer on which an OpenGL program actually executes (or requests rendering).

Let's say you are sitting at a computer "A" (usually called client machine in networking term) and log on to a remote computer "B" (called server in network).

In OpenGL, "A" is the server because it actually renders. And "B" is the client because it requests drawing or executes an application.

And, both system must have OpenGL.

dorbie
01-17-2006, 10:07 AM
Depends on the operating system and windowing system you are using, pick ONE thread and post there do not keep posting new questions on the same topic.

P.S. and post from ONE account :confused:

dorbie
01-17-2006, 10:23 AM
OK from another thread I see you're using some flavor of Unix in a cross platform environment.

This probably means you're using X with GLX extensions.

Classic X with GLX extensions reverses the client server model. The X server is the desktop system that you look at, it's called a server because it serves graphics resources to client applications running remotely. So resources like framebuffer visuals, bitmaps, textures, display lists are allocated on teh desktop 'server' for use by the remote applications 'clients'. This enables the desktop system to provide hardware acceleration on your desktop although the network may become the bottleneck depending on the complexity of the data and the use of display lists etc.

So yes it can be confusing, because your remote computing server in the traditional sense runs the application which for graphics purposes is a client that displays on your desktop X server.

For Windows systems you can get 3rd party applications that provide an X server with GLX support for the display of unix applications running on a remote Unix or Linux system accross teh network.

Once you get over the confusing names you understand that the X server only serves graphics resorces to remote application clients and that traditional server duties still reside remotely with the system running the application it gets a lot easier.

If the X server does not support OpenGL, specifically if GLX extensions are not supported by the X server then you will not be able to create an OpenGL rendering context and your application should exit gracefully.

There are newer (less standard) ways of doing this where the rendering is performed on the remote system and only a bitmap is sent over the network, something like SGI's viz server does this, but there are other systems which do the same, even in a Unix GLX environment. For massive rendering problems or more complex datasets it can be a better tradeoff than caching resources locally, the price is the transmisison of an image over the network and contention for resources on the remote server, but the desktop system needs less horsepower and a display client can run on a desktop with no native 3D acceleration.