gl question - editing large objects

Brian McClendon bam at rudedog.sgi.com
Fri Jul 27 03:37:55 AEST 1990


In article <9007251346.AA24480 at acf4.NYU.EDU> karron at ACF4.NYU.EDU (Dan Karron) writes:
>My understanding that graphical objects are not the way to go since
>the new cpus can keep up with the graphics pipeline. 
>
>Is it correct to say that the entire compiled objects part of the gl is
>obsolete ? Are there any specific instances where you should use it ?
>
>dan.

Here's the story:  

The main advantage of objects (aka display lists) is their ability
to draw quickly once generated.  In a large program with hundreds (or
thousands) of lines of rendering code, its much easier to generate
an object with the complex code and view it with a tight loop of
callobj()s than it would be to tune the rendering code up to
the speed of the graphics.

On a GT/GTX it was discovered that there was no reasonable way to
make v3f() object-able without impacting its immediate mode performance.
This caused the GT version of the GL Reference Manual and GLPG to
have words to the effect that objects were heading for obsolescence.
This is no longer true.

With 3.3, we discovered a way to use the shared library jump table
to make all of the high performance routines object-able without
slowing their immediate mode performance.  On the VGX in particular
there are a couple of cases where objects draw slightly faster
than the best immediate mode code (slightly = <20%).


To meet the performance of the GT/X and VGX graphics, immediate
mode code should have no more than 3 lines of MIPS assembly for
each call to v3f/c3f/n3f (and equiv).  This applies for "fast path"
quads and tmeshes where fast path is a single-infinite-light, 
flat-or-gouraud, ~50-pixel-tri-or-~100-pixel-quad.  More options
will slow down graphics to the point where more MIPS code can fit 
in without degradation.

On a Personal Iris, the balance is more in favor of the CPU, but
if you want your code to remain graphics limited when you move
up to faster graphics hardware, keep the above in mind.

Editing objects always has been, and probably always will be
slower than users would like.  The main question is: how much
editing are you going to be doing?  If you change most of your
scene every frame, objects probably aren't a good idea, but if
you keep most of your scene constant or change it infrequently
then objects could be used to your advantage.

Experimentation is the best way to find out if its right for your application.  
----------------------------------------------------------------------------
   Brian McClendon bam at rudedog.SGI.COM ...!uunet!sgi!rudedog!bam 415-335-1110
-----------------------------------------------------------------------------



More information about the Comp.sys.sgi mailing list