Path: utzoo!attcan!uunet!cs.utexas.edu!wuarchive!decwrl!sgi!shinobu!odin!cashew.asd.sgi.com!kurt From: kurt@cashew.asd.sgi.com (Kurt Akeley) Newsgroups: comp.sys.sgi Subject: Re: gl question - editing large objects Message-ID: <10946@odin.corp.sgi.com> Date: 26 Jul 90 18:06:30 GMT References: <9007251346.AA24480@acf4.NYU.EDU> Sender: news@odin.corp.sgi.com Reply-To: kurt@cashew.asd.sgi.com (Kurt Akeley) Organization: sgi Lines: 42 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