gl question - editing large objects
Kurt Akeley
kurt at cashew.asd.sgi.com
Fri Jul 27 04:06:30 AEST 1990
no, it is not the case that GL objects are obsolete. (although it was
reasonable to conclude this, based on the lack of development attention
that they received prior to the 3.3 release.) in the 3.3 release
objects have been extended to include ALL the new drawing commands,
such as bgnpolygon(), c(), n(), v(), t(), and endpolygon(). the
execution performance of objects is now very high, in some cases slightly
higher than can be achieved by immediate-mode calls.
however, the editing performance of objects is poorer than ever, as
a result of some arcane interactions between shared libraries and
code caches. thus (for now) rule one:
if performance is an issue, use GL objects only for data that
never change.
in general, we continue to encourage you to program using the immediate
mode capabilities of the GL. immediate mode coding supports interractive
graphics driven by changing data. that's the way we like to do graphics.
however, there are some cases where GL objects may be preferred to GL
immediate mode:
1. given our renewed comittment to GL objects, their performance is
likely to track the inherent performance of new machines, whereas
your immediate mode code may not (due, perhaps, to subtle issues
like quad-word alignment, which change from machine to machine, and
which we can handle in our object storage format). if your code
basically views static objects, it may port better if it is object
based.
2. in upcoming releases DGL and GL will be better integrated, and GL
programs will more often be run across networks (as in the X model).
because objects are stored and traversed on the server, rather than
on the client, objects will typically execute faster than immediate
code when client and server are different machines.
finally, while GL objects are not being obsoleted, other parts of the
current GL
will be. these include (definitely) all the old-style drawing commands, such
as pnt, move/draw, pmv/pdr/pclos, poly/polf, and (likely) the old-style pixel
commands, such as readpixels/writepixels and readRGB/writeRGB.
-- kurt
More information about the Comp.sys.sgi
mailing list