gl question - editing large objects

Michael B. Johnson wave at media-lab.MEDIA.MIT.EDU
Wed Jul 25 09:25:23 AEST 1990


I have a question for the gl wizards here:

I have a reasonable sized 4D (a 4 processor 240GTX) that will 
be connected to a very fast computer (a CM-2) that will be generating 
geometric data that I want display and interact with on the 4D.
Conceivably, I could have any sort of geometry data (spheres, 
points, polygons, etc.), but just as an example, let's say I have 
some triangle mesh: I have vertice info, normal info, and color
info.  Also for this example let's say this fast computer is writing 
this information to a file.  So, if I want to get this data up 
on the 4D and interact with it, the most straightforward way seems
to build a gl object and then display it.  There is enough example
code that show how to interact with data sets that cobbling together
a rudimentary interface is just an afternoon.  Now we get to the 
hard part (at least to me...).  The fast computer that is generating
the geometry information is pretty fast - every few seconds or so
it can generate and write as a file onto the SGI more geometry data.

These are large datasets - since a 4D can render (supposedly) a 
100,00 triangle mesh a second, let's say it's a 10,000 triangle mesh.
If I had a machine that could display them fast enough, I could easily
generate larger interesing data sets, or more of them more quickly.

This geometry data is another timestep of the object we're looking at.
Consequently, I don't really want to build another object, I just want
to edit the one I just made.  Let's say that after the initial 
geometry data is set up, the connectivity of my triangle mesh doesn't
change - just some scalar that we associate with color does.  Now, my
understanding of how I would build that object in gl in the first 
place would be something like this:

gl_obj = genobj();
makeobj(gl_obj);

   shademodel(GOURAUD);
   bgntmesh();
      c3f(c1);
      n3f(n1);
      v3f(v1);
      c3f(c2);
      n3f(n2);
      v3f(v2);
      c3f(c3);
      n3f(n3);
      v3f(v3);

 /* add as many more triangles as we have here... */

   endtmesh();  

closeobj();


I also realize that I can put tags in there so that I can edit the object,
the manual says (16-10 Graphics Library Programming Guide IRIS-4D Series):

"If you have to edit graphical objects frequently, you should build your 
own custom data structures and traversal routines, rather than use 
graphical objects.  The editing routines that follow are best suited for
infrequent and simple editing operations."

Given that I want to do frequent regular editing of a graphical object,
what are my alternatives?  If, for example, I wanted to change the 
vertice and normal info without changing the color?  I don't understand
how this can be done efficently in gl.  

I won't go into more detail for fear of boring people.  I would be happy
to give all sorts of details over the phone or through e-mail.  

To conserve network traffic, please respond via e-mail, rather than posting.

Thanks.

  
-- 

-->  Michael B. Johnson
-->  MIT Media Lab      --  Computer Graphics & Animation Group
-->  (617) 253-0663     --  wave at media-lab.media.mit.edu



More information about the Comp.sys.sgi mailing list