Re: Dynamic geometry that depends on eye position

New Message Reply Date view Thread view Subject view Author view

From: Yair Kurzion (yair++at++polygon.engr.sgi.com)
Date: 02/07/2001 13:20:30


Hello Simon !

> I have a question about the recommended way to implement dynamic
> geometry that depends on the eye position (similar to billboards).
> Currently I'm attaching pre-cull node callbacks that update geometry
> using pfFluxes. It's works OK in a single channel situation but I'm not
> sure this is the "recommended" way to do it.

If you aren't CULL-limited, this is the preferred way. Your callbacks are
called only when the geometry in question is visible.

> In a multi-channel
> situation the last channel updates are used in all channels (at least
> that's what appears to be happening). I guess the CULL process is doing
> all channels and the last one is used for drawing all channels in the
> DRAW process. How can I avoid this?

A pfFlux maintains a single copy of its data per frame-number. This means that
multiple CULL processes share a pfFlux buffer. If all try to write, you get
an MP-unsafe result.

From your description it seems that each one of your channels contains a
different geometry. I think the right way to implement this is by creating
a separate scene for each channel, and attaching independent geometry on it.
If some parts of the scene graph are common to all channels, add them to each
one of the separate scenes.

If you don't like this solution, you can try managing a set of geosets on each
channel (as user-data). These geosets can contain your dynamic geometry and
you can call ::draw on them in a DRAW callback. This isn't very clean because
your geosets will not go through CULL.

-yair

-- 
\_________  \_____  \__    \__  \_____         Yair Kurzion
\_________  \_____   \__   \__  \_____         yair++at++sgi.com
       \__     \__   \____\__      \__   http://reality.sgi.com/yair
       \__          \__  \__                Work: (650) 933-6502
       \__          \__   \__               Home: (408) 226-9771
       \__          \__    \__             


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Wed Feb 07 2001 - 13:20:35 PST

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.