Hello Aleatorylamp,
I can save you the trouble of tracing it.
This is what I call "Group Glue".
Hopefully my terminology is understandable.....
If you look at your entire AF99 AFA file, it shows a bunch of stuff. I call that the "Assembly".
Sometimes I create an Assembly with only a few pieces of the aeroplane as not to get distracted by the X-ray effect of seeing all the lines in front of and behind what I am working on.
In your Assembly, there are multiple "Groups": Nose, Body Main, Tail, Inner Wing, Canopy, Center Gear, Tail Gear, etc.
Note that NOWHERE do you specify how those Groups fit together.
There is a single assembly (note no caps) sequence for the Groups that are included in your AF99 Assembly and you can't change it much as you might like to.
That is why sometimes Groups such as Left Tail or Right Nose are not as useful as they might appear.
That "1000 lines of VectorJumps" is a determination of what order to display the groups based on the location of your Point of View (POV).
It isn't real smart.
It makes all determinations as to what quadrant the POV is located in and displays the Groups in a (hopefully) appropriate sequence.
That is why when you are inside the Cockpit, you see the Tail Group showing up through the Aft Cabin Wall.
The code has determined that your POV is in the Aft hemisphere so the display sequence is Nose, Body Main, Tail.
The last one displayed is in the foreground.
Now if your Cockpit location were AHEAD of the CoG, then you would be seeing the sequence Tail, Body Main, Nose.
....and you would be seeing the Propeller visible through your Instrument Panel.
Proper display SHOULD be Nose, Tail, Body Main if you are inside the Cockpit but since the Viewing Plane (VectorJump) happens to be at the CoG and all determinations as to quadrant of the POV before anything is displayed, that will never happen.
To do it properly requires more than just one VectorJump for each place where there is more than two Groups in series and also a means of specifying the location of viewing planes between Groups.
Many years back, I worked on re programming this sequence (I was working on my F6F-3 Hellcat as a timeframe reference), but ran into a few issues which I never quite got sorted out.
I also found that the amount of work needed to do this was not justified by the improvement in the visual model.
I usually could not tell the difference and I am the fellow programming it!
My current approach to Virtual Cockpits is much easier and cleaner from a programming standpoint and has a lot less potential for error.
While I agree that the programmers of AF99 probably had a pretty good ability to visualize, their design skills were VERY poor in my opinion. They pushed a rather inadequate product out the door probably on a tight schedule and we have had to live with it ever since.
It was pretty much the only game in town for a while and it beats the heck out of trying to program in SCASM alone.
Besides the bugs that are still in the program and the fact that the initial release really did not work, the resource limits are not optimal. When was the last time you ran out of Structures? We keep running out of Components all the time.
The natural form of a 3D model should look like a Tree.
The form of a AF99 Assembly is more like a collection of Vines with each vine having just one branch at junction with no ability for branches to have an additional junction or at least not one that is controlled.
More time should have been spent in designing a proper Tree representation for the Assembly listing.
Sometimes things can get a little complicated.
<Bleep> Censored. Email me if you want more background to this discussion.
In their defence though, when you start adding a lot of flexibility and neat nifty features, you start confusing your audience because some will not understand the benefits. FWIW we are still using this package almost 20 years after it first came out.
- Ivan.
Aleatorylamp said:Just after the *** Start of Main Aircraft Code *** there is a large
chunk of code over 1000 lines long, that just does Vectorjumps,
Jumps and Calls, before actually drawing anything, and to try to get
a general picture of what is going on is of course impossible without
detailed analysis.
I can save you the trouble of tracing it.
This is what I call "Group Glue".
Hopefully my terminology is understandable.....
If you look at your entire AF99 AFA file, it shows a bunch of stuff. I call that the "Assembly".
Sometimes I create an Assembly with only a few pieces of the aeroplane as not to get distracted by the X-ray effect of seeing all the lines in front of and behind what I am working on.
In your Assembly, there are multiple "Groups": Nose, Body Main, Tail, Inner Wing, Canopy, Center Gear, Tail Gear, etc.
Note that NOWHERE do you specify how those Groups fit together.
There is a single assembly (note no caps) sequence for the Groups that are included in your AF99 Assembly and you can't change it much as you might like to.
That is why sometimes Groups such as Left Tail or Right Nose are not as useful as they might appear.
That "1000 lines of VectorJumps" is a determination of what order to display the groups based on the location of your Point of View (POV).
It isn't real smart.
It makes all determinations as to what quadrant the POV is located in and displays the Groups in a (hopefully) appropriate sequence.
That is why when you are inside the Cockpit, you see the Tail Group showing up through the Aft Cabin Wall.
The code has determined that your POV is in the Aft hemisphere so the display sequence is Nose, Body Main, Tail.
The last one displayed is in the foreground.
Now if your Cockpit location were AHEAD of the CoG, then you would be seeing the sequence Tail, Body Main, Nose.
....and you would be seeing the Propeller visible through your Instrument Panel.
Proper display SHOULD be Nose, Tail, Body Main if you are inside the Cockpit but since the Viewing Plane (VectorJump) happens to be at the CoG and all determinations as to quadrant of the POV before anything is displayed, that will never happen.
To do it properly requires more than just one VectorJump for each place where there is more than two Groups in series and also a means of specifying the location of viewing planes between Groups.
Many years back, I worked on re programming this sequence (I was working on my F6F-3 Hellcat as a timeframe reference), but ran into a few issues which I never quite got sorted out.
I also found that the amount of work needed to do this was not justified by the improvement in the visual model.
I usually could not tell the difference and I am the fellow programming it!
My current approach to Virtual Cockpits is much easier and cleaner from a programming standpoint and has a lot less potential for error.
Aleatorylamp said:When you think that the way in which this kind of automatically
generated "Z" Buffer actually works was created by someone,
even if it is not as perfect as the modern "Z" Buffers contained in
later simulators, it is still quite an amazing feat. Those guys really had
an extremely high 3D visualization capacity!
While I agree that the programmers of AF99 probably had a pretty good ability to visualize, their design skills were VERY poor in my opinion. They pushed a rather inadequate product out the door probably on a tight schedule and we have had to live with it ever since.
It was pretty much the only game in town for a while and it beats the heck out of trying to program in SCASM alone.
Besides the bugs that are still in the program and the fact that the initial release really did not work, the resource limits are not optimal. When was the last time you ran out of Structures? We keep running out of Components all the time.
The natural form of a 3D model should look like a Tree.
The form of a AF99 Assembly is more like a collection of Vines with each vine having just one branch at junction with no ability for branches to have an additional junction or at least not one that is controlled.
More time should have been spent in designing a proper Tree representation for the Assembly listing.
Sometimes things can get a little complicated.
<Bleep> Censored. Email me if you want more background to this discussion.
In their defence though, when you start adding a lot of flexibility and neat nifty features, you start confusing your audience because some will not understand the benefits. FWIW we are still using this package almost 20 years after it first came out.
- Ivan.