[info-performer] O2 hangs on Isect

New Message Reply Date view Thread view Subject view Author view

From: Dougan, Rob (rob.dougan++at++gdcanada.com)
Date: 03/18/2003 09:54:10


Machine or software or Database?

We have a non-graphical application that performs visibility calculations
between a host vehicle "sensor" and a number of target vehicles. 32 control
points (local xyz coordinates) have been identified on each target model.
The algorithm involves constructing a segment set between the sensor and
target (32 segments). At run time the distance to each of the control points
is calculated and then intersection checks are performed. If the distance to
a control point matches the distance returned by the ISect then that point
is visible. If the visible control points exceed a threshold value, the
target is visible.

When it runs it works well. However, 30% of the time it "hangs" on the first
pfNodeIsectSegs, and once this happens, subsequent runs fail in the same
place. (not really a hang but Performer eats up all available memory and
then unceremoniously cores out). All input data to the operation has been
verified.

Heres a code frag:

(this is a single process APPCULLDRAW )

// init terrain traversal mask:
pfNodeTravMask((pfNode *) terrain,
PFTRAV_ISECT,TGT_ISECT_MASK,PFTRAV_SELF,PF_SET);

//init target traversal mask
pfNodeTravMask((pfNode *) targetDcs,
PFTRAV_ISECT,TGT_ISECT_MASK,PFTRAV_SELF,PF_SET);

... Construct the segment set (convert from local coordinates) ...
segSet.activeMask = pow(2.0,32.0) -1;
segSet.isectMask = TGT_ISECT_MASK; // same as the terrain
segSet.mode = PFTRAV_IS_PRIM | PFTRAV_IS_CULL_BACK;
nHits = pfNodeIsectSegs((pfNode *) scene, &segSet,hits); // sometimes this
never returns

Terrain database (using Terrex) is approx 12km x 12km
- stats from Creator (polys 928212, groups 1371, LODs 756 (nodes))
- Can Performer be set to traverse only the highest level of detail?

Host System:
195 MHz O2 256 MHz, Performer 2.2.9, 2.2.13 (app built with 2.2.13) IRIX
6.5
-Is this machine up to the job?

Any suggestions or help would be appreciated. Thanks.

Rob Dougan
Senior Software Engineer
General Dynamics Canada
Tel 613 596 7623 Fax 613 596 7697
rob.dougan++at++gdcanada.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Mar 18 2003 - 09:54:16 PST

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