On Friday 15 May 2009 20:31:17 Durk Talsma wrote:
> I'm not sure about this, but my estimate is that the trouble doesnt arise
> when the mag-compass is part of the user aircraft, but only when it's part
> of the exterior world, i.e. when part of an AI aircraft. Also, it's
> possible that the instrument by itself may be okay, but triggers an error
> in interaction with other scene elements.
>

I've been checking a little more today, and it looks like there's more than 
meets the eye. In retrospect, the cessna / mag-compass models themselves are 
probably okay. It's probably only that the mag compass showed up because it 
was the first object to be subjected to a test containing bad preconditions 
already.

I'm still not fully understanding the finer details of the ground cache, but 
in essence, if works by trying to shoot a line through every triangle in the 
scene graph. Then it returns the distance of the closest intersecting point. 
To make the process efficient, the scenegraph is traversed node by node, and 
triangles obviously not relevant are quickly discarded, quite similar to the 
way the culling algorithm works. 

Since the scene graph is composed of models that may each have their local 
coordinate systems, it is necessary that the line that is shot through the 
scene graph is also transformed accordingly, so for each level of the 
scenegrahp,  a new transformation matrix is created, using a popMatrix 
function. 

While trying to trap bad data in this the popMatrix function, I just noticed 
that a bad transformation matrix is already set up relatively early in the 
process, only a few levels deep at the stack. I haven't been able to relate 
this to any meaningful object yet. (All that came up was the name "Scene").

So, it looks like a transformation error early on blows up the intersect line 
vector(s) already. and scenegraph is traversed further down, OSG keeps happily 
multiplying already corrupted data with valid transformation data further down 
the line, restuling in an intersect line, composed of NaNs. This goes 
unnoticed, until the error is finally picked up at the first possible occasion 
where there's a nan error check. That is, in trialintersect.

I hope to continue this investigation later, and hope to be able to traverse 
the bad data to their true source.

In the mean time, I'm sorry to all the model developers for prematurely 
raising a red flag. I still find it rather curious that the error only seems 
to occur when AI traffic is activated, which still seems of indicate a 
critical role for the c172p model. However, until further notice, it doesn't 
look like the problem is as straightforward as I thought yesterday. 


Cheers,
Durk




------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to