Skip navigation

Skip secondary navigation

Science On a Sphere®(SOS) Technical Q&A

Q. What the max # of images that I can render at once?

Basically, there is a limit of 32K characters on the command line and we push that with things like foot prints and other long duration animations. The only way to render it, is to break it up into smaller chunks, but you can still output to the same "media" directory. We plan to fix this limitation, but it's not in the next list of features we plan to implement, because we are hoping to eliminate the rendering step completely! At least that's our goal.

Q. Does the SOS render system (i.e. sosrender / abrender_gui) use the GPU on the video card?

The answer is yes it does, but no, it doesn't really have too. Here's the quick answer. abrender-gui is a wrapper script around sosrender. sosrender is the program that does the hard work of rendering. Sosrender connects to the active display as defined by the DISPLAY environment variable in Linux and renders frames into Easter egg slices. If the DISPLAY variable is set to :0.0 (or something like that), then sosrender will use the GPU for rendering. If the display variable is set to an off screen frame buffer, then sosrender will use the CPU. Here is the longer answer: Sosrendering is the user initiated process where cylindrical texture maps are processed into oval slices (we call them Easter eggs) for display on an SOS system. At each SOS site, we gave a training session on content creation. For these sessions, we demonstrated how to perform rendering via a graphical utility called "abrender-gui". Abrender-gui is a TCL/TK script that wraps around a command line program called sosrender. Generally sosrender does all of the hard work of reading cylindrical maps, rendering them to Easter eggs, and writing the files back out. Abrender-gui takes a list of input files, figures out the correct command line options for sosrender, and distributes the processing of the sosrender jobs across all available display computers. Abrender sets things up so that sosrender will use the video cards GPU (the Graphics Processing Unit) to render each frame. In Linux, the way to do this is to set the DISPLAY variable to the local, active display. This is in part why, when the system is rendering, you can see the images flash up on each display. The GPU's generally can render many times faster than the local CPU and this is why abrender-gui was implemented this way. The pros of this implementation is that it's the fastest way to render (clustered computing and GPU's). The cons of this implementation are that sosrender needs an active display and the display nodes are tied up and can not be used for any other purpose while the render processes are running. In abrender-gui's current implementation, there is no way to change the DISPLAY setting. A more advanced usage of sosrender is have it run in the background, without a connected display. Since sosrender will use whatever display is specified in the DISPLAY environment variable, it is possible to write other scripts that render off screen, without a GPU. We use scripts, running on servers to process our real-time data all of the time. Here is the example of Offscreen Rendering script example. In Linux, we do this by starting the Xvfb processes. SOSrender can connect to it to do it's rendering thing without having any local monitor or display.