Re: Performer Node [again] <last one!;^>

New Message Reply Date view Thread view Subject view Author view

From: Fred Dech (fred@cerulean.bvis.uic.edu)
Date: 05/25/2000 12:44:48


Don Burns wrote:
>
> >
> > hi Dave, Don.
> >
> > ok. what you describe below sounds do-able. i do have the source for the
> > old Performer node. it's actually been heavily modified to suit our pur-
> > poses but the basic structure was not changed.
> >
> > my BIG question. the new Performer node sounds better. i am by no means
> > an expert on extending the Performer class structure, so i'm pretty easy
> > to convince. but. is it REALLY BETTER? like i said before, to re-develop
> > using the new Performer node constitues alot of man-hours.
> >
> > if you could, please desribe to me briefly (i think alot of the answers are
> > imbedded in this thread) what makes the new Performer node superior to the
> > old Performer node.
> >
>
> Ok.. once again, short and sweet. Two reasons:
>
> 1) It is easier to use
> 2) It takes advantage of multi-processing to do the polygonization
> in a parallel process to the drawing process.
>
> -don
>
thank you sir. i knew part of #2, although i wasn't sure that the first
Performer Node didn't do this. #1 is subjective, since alot of the
functionality for APP to DRAWING process communication is not there yet.
but the code is definately cleaner...

-fd

> > thanks.
> >
> > --fred
> >
> > Dave Akers wrote:
> > >
> > > Hi Fred,
> > >
> > > Here are my responses to your questions..
> > >
> > > > here's a list of things that we have implimented or quasi implimented using
> > > > the 1st Performer node. we need to be able to do the following things, plus
> > > > other not yet implimented proceedures as we continue to develop our software.
> > > >
> > > > 1. we used OGL clipping planes mainly because i did not find a suitable
> > > > analog in Performer. the ability to set and manipulate multiple clipping
> > > > planes is a must for our use of Volumizer. it looks like there may be
> > > > a way to do this by setting a pfGeoState attribute, but we haven't done
> > > > that, and it's not clear to me that Performer has the flexibility of
> > > > OGL in this respect. for example, allow a user to select 1 of a number
> > > > (i don't recall, i believe OGL supports 5) clipping planes and manipulate
> > > > it with respect to the volume.
> > >
> > > Yes, you're correct that there's no suitable analog for GL clip planes in
> > > Performer. We would recommend that you use a channel draw callback to
> > > enable the GL clip planes. To pass data to this draw callback you could
> > > store user data in shared memory, as was demonstrated for other purposes
> > > with the original Performer node part of the 1.1 distribution.
> > >
> > > You'll want to use pfObject::setUserData() to set the user data pointer on
> > > your pfVolume node to a struct in shared memory with the data you need to
> > > pass through.. The struct you use as a data container should inherit from
> > > pfMemory so that allocation takes place within a shared memory arena. If
> > > you need help with this, let us know -- or take a look at the way it
> > > worked with the old pfVONode (assuming you still have it..)
> > >
> > > > 2. as i said earlier, being able to change the color LUT dynamimcally. and
> > > > your reply to use pfColortable with the pfGeoState seems very straight-
> > > > forward. i wonder if it acts on the geometry in a similar way to
> > > > OGLVolumizer voLookupTablePost()?
> > >
> > > Actually, upon closer examination, pfColortable won't do what you want. It
> > > is not a texture lookup table at all, but a color indexing technique to
> > > apply on geosets. Sorry about that. :( But you can certainly accomplish
> > > lookup tables by using pre- and post- draw callbacks on the pfVolume node.
> > > In the pre callback, enable the lookup table and in the post callback,
> > > disable it. This way, other nodes in your scene will not be affected by
> > > the texture lookup table you've applied to your volume. Make sense? You'll
> > > of course need to send the lookup tables from the APP process to the DRAW
> > > process using shared memory..
> > >
> > >
> > > > 3. being able to change the threshold value of voDrawActionCache for image
> > > > and performance tradeoffs as an application is running is important to us.
> > >
> > > This should be no problem within the structure provided..
> > >
> > > > 4. being able to interactively modify voIndexedTetraSet. for example, have
> > > > the ability from the APP process to send new values to x_sz, y_sz, z_sz,
> > > > x_dev, y_dev, z_dev in the Performer Volumizer node as illustrated in the
> > > > fragment below:
> > >
> > > Should be no problem as well. Just make the modifications to the tetra set
> > > in the APP process and new geosets will be created within
> > > pfVolume::polygonize().
> > >
> > > If you need more help, please ask away. :)
> > >
> > > -Dave
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> > --
> > Fred Dech fdech@uic.edu
> > VRMedLab
> > (312) 413-3092: fax (312) 996-8342
> > "We'll burn that bridge when we come to it." JL
> >
>
>


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Thu May 25 2000 - 13:47:45 PDT