From: Paul Brewster (p.f.brewster++at++larc.nasa.gov)
Date: 06/07/2001 14:27:26
I am trying to develop a poor mans way of intersecting a line in a scene
heirarchically. That is, I want to shoot a ray into the scene that will
only intersect with a few objects in the scene. If it doesn't hit
anything, then I will shoot another one that will intersect with a few
more objects in the scene. Most objects cannot be intersected at all,
only a few objects in the scene can be intersected with.
My scene graph looks like this for objects that can be intersected:
DCS
| | |
DCS DCS DCS
| | | | | |
| SCS | SCS | SCS
| | | | | |
Geode Geode Geode
If my ascii art came through, you should see one DCS with three DCS
underneath it. Underneath each DCS is a Geode and an SCS connecting to
that same Geode. The SCS is just used to scale the Geode by 2. I did set
some user data on the Geode.
What I did was set the isect mask on the Geodes to 0x11000000.
The SCS isect mask is 0x10000000.
I first want to try and intersect with the Geode without using the SCS,
so I use
0x01000000 on my scene->isect function. If that doesn't hit anything I
try it again with 0x10000000. This allows me to pick the neighborhood of
an object, but still be able to pick objects when they are right next to
each other. I then use the UserData to find what I picked and act
accordingly.
The problem: When I do this on an Onyx2 there is no problem. It works
just fine. When I do it on an Octane2 it dumps core. If I don't try to
intersect it the second time it works fine on the Octane2.
My call stack trace looks like this:
...
pfDCS::nb_intersect
pfDCS::nb_intersect
pfSCS::nb_intersect
pfGeode::nb_intersect
pfNode::pf_isectFullTest
pfHit::setUserData
pfObject::operator new
pfMemory::operator new
_amalloc
_posix_spin_lock
Bus error.
I am doing this with pfMultiprocess(PFMP_APPCULLDRAW);
Changing that didn't affect anything.
The Onyx is running version 2.2.11
The Octane is running version 2.2.10
Any clue why this is happening? Am I doing something wrong, or is there
a better way to do this?
Thanks.
-- Paul Brewster Data Visualization and Analysis Lab NASA Langley Research Center
This archive was generated by hypermail 2b29 : Thu Jun 07 2001 - 14:26:17 PDT