Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!hellgate.utah.edu!cs.utah.edu!thomson From: thomson@cs.utah.edu (Rich Thomson) Newsgroups: comp.graphics Subject: Re: immediate mode graphics versus display-list graphics Message-ID: <1990Oct1.094440.15213@hellgate.utah.edu> Date: 1 Oct 90 15:44:40 GMT References: <1990Sep30.060606.213@morrow.stanford.edu> Lines: 70 In article <1990Sep30.060606.213@morrow.stanford.edu> rick@pangea.Stanford.EDU (Rick Ottolini) writes: >[...] one popular 3-D workstation vendor was knocking display-list based >graphics languages such as Dore or PHIGS as being compartively inflexible >and slow. Well, I can guess that your ``popular 3-D workstation vendor'' was SGI because SGI systems are immediate-mode based; naturally they are going to knock display-list graphics. The fact is that there are applications in which display-list graphics have a natural fit and there are applications in which immediate-mode graphics have a natural fit. I think that the world of graphics is going to see both of these styles of graphics for quite a while. >This seemed to be the case for equivalent demos under the two systems. Again, it all depends on the application/demo you are looking at. What you find is that people who use immediate-mode systems (I'm speaking from the experience of looking at the inside of real-world applications) like them because they can have their own structured (i.e. display-list) graphics kernel that suits them. This brings up some interesting points in the case of PEX (PHIGS+ Extensions to X), because the PEX protocol provides a way for immediate-mode style graphics. In a networking environment, it can be a real advantage to have a structured graphics type approach because it isn't necessary for the application to send the entire graphics structure over the wire each time a refresh of the screen is needed. On the other hand, as a previous poster pointed out, it can be painful to deal with all the structure store of PHIGS when the entire geometry changes every frame. When this is the case the structure store isn't buying you anything. Interestingly enough, no one has decided on an "immediate-mode" language binding to the PEX protocol, yet the capability is there for those die-hards willing to talk directly to the X server over the socket. The fact of the matter is that there is no clear winner of either one: structured graphics (i.e. PHIGS, PEX) can make the job of writing a complex 3-D graphics program easier because it can do the work of managing all the attribute inheritance and structure management for you. On the other hand, with immediate-mode graphics you can control all of that yourself at the expense of writing your own "structure walker" (the piece of code that traverses the hierarchy and outputs individual graphics primitives). Again, my experience is that applications that want to see an immediate-mode interface already have some kind of structure-walker built into the application and are really doing structured graphics anyway. I find it interesting that PEX provides a way of doing both within the same framework; in that sense, I find it more flexible because I could choose which one I want to use. The sample implementation from Sun will eventually support what is called "client-side structure traversal", wherein the application will manage and traverse structure storage. This will result in *alot* of communication to the server for applications with complicated images. There is alot of talk about creating a language binding for the immediate-mode interface to PEX (built around the concept of a "renderer"); whether or not this language binding will look like PHIGS or not is still up to debate. Considering that the PEX protocol itself is based on PHIGS, my guess is that the immediate-mode interface (when and if it becomes available) will have lots of PHIGSisms except when it comes to managing hierarchy and display control. -- Rich Disclaimer: I work for Evans & Sutherland, which makes a PEX box, but I don't represent them in any official manner. Rich Thomson thomson@cs.utah.edu {bellcore,hplabs,uunet}!utah-cs!thomson ``If everybody is thinking the same thing, is anybody thinking?'' --Bob Johnson