From: Bram Stolk (bram++at++sara.nl)
Date: 04/11/2000 04:42:19
Hello performers,
I use a pfGeoSet for which I change the contents of the vertex array
each frame.
This means, that each frame, the bounding volume changes, and should
be updated to ensure proper culling/isecting.
In the manual page for pfGeoSet, I read:
... If the mode is
PFBOUND_DYNAMIC, IRIS Performer will recompute the bound if the number of
primitives, the primitive lengths array or the vertex coordinate arrays
are changed. Note that IRIS Performer does not know if the contents of
these arrays changes, only when the pointer itself is set. Recomputation
of the bounding box can be forced by calling pfGeoSet::setBound with a
bbox that is NULL.
So each time I change the vertex array contents, I do:
set->setBound(0,PFBOUND_DYNAMIC);
Nevertheless, the geoset is occasionally culled when it should not
have been. I use a CAVE setup, so I see some cave walls do culling,
and others do no culling.
Being quite puzzled about this, I decided to take more drastic
measures, and to disable culling for the geode alltogether,
using this func call:
geode->setTravMask(PFTRAV_CULL, 0, PFTRAV_SELF | PFTRAV_DESCEND, PF_SET);
Even this does not prevent the erroneous culling of my dynamically
adjusted object!
Can someone please enlighten me in the noble art of culling dynamic geometry?
Many thanks,
Bram Stolk
-- ------------------------------------------------------------------------------ Bram Stolk, VR Specialist. SARA Academic Computing Services Amsterdam, PO Box 94613, 1090 GP AMSTERDAM email: bram++at++sara.nl Phone +31-20-5923059 Fax +31-20-6683167"I heard if you play the NT-4.0-CD backwards, you get a satanic message." "Thats nothing, if you play it forward, it installs NT-4.0" ------------------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Tue Apr 11 2000 - 04:42:24 PDT