Hello there folks. Some of you may remember me from way back in the day when FS2 was at its prime. I actually was a staffer at FS Watch a long time ago before it was part of Volition Watch. (IceFire may remeber me)
In any case, I've decided to help out with the source code business, and I'm just starting to figure out the inner workings that are FS. I've been mucking about trying to devise a better starfield system, but so far I've not really had any success with any ideas.
I have, however, managed to calm the stars, as it were. Stars should no longer jitter so much when the view is moved in very small increments.
in starfield.cpp, function stars_draw():
/* if the two points are the same, fudge it, since some D3D cards (G200 and G400) are lame.
if( (fl2i(p1.sx) == fl2i(p2.sx)) && (fl2i(p1.sy) == fl2i(p2.sy)) ){
p1.sx += 1.0f;
}
*/
if( !(abs(fl2i(p1.sx) - fl2i(p2.sx)) > 3) && !(abs(fl2i(p1.sy) - fl2i(p2.sy)) > 3) ) {
p1.sx = p2.sx;
p1.sy = p2.sy;
p1.sx += 1.0f;
}
Basically it checks the distance between the two vertices p1 and p2, which are the position where that star was, and where that star is now, respectively. If the two positions are not a certain distance apart (currently 3), it sets position one equal to position two, thus making the motion blur line consist of only a singular pixel. If someone could independently back this up and/or commit it, that'd be great, as I don't have CVS commit access.