See attached patch.  Removes black dots by accounting for radius of nodes
when calculating visible nodes for traversal without removing the
optimization.  Confirmed fix with a few people on IRC.  Can someone with
CVS commit privileges add this to the OSG branch (obviously).

Jonathan Wagner
? Scenery.diff
Index: tileentry.cxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/source/src/Scenery/tileentry.cxx,v
retrieving revision 1.57
diff -u -p -r1.57 tileentry.cxx
--- tileentry.cxx       8 May 2007 06:12:27 -0000       1.57
+++ tileentry.cxx       24 May 2007 02:49:35 -0000
@@ -74,9 +74,9 @@ public:
     SGUpdateVisitor* updateVisitor = static_cast<SGUpdateVisitor*>(nv);
 
     osg::Vec3 center = node->getBound().center();
-    double dist2 = distSqr(updateVisitor->getGlobalEyePos(),
-                           SGVec3d(center[0], center[1], center[2]));
-    if (updateVisitor->getSqrVisibility() < dist2)
+    double distance = dist(updateVisitor->getGlobalEyePos(),
+                           SGVec3d(center[0], center[1], center[2])) - 
node->getBound().radius();
+    if (updateVisitor->getVisibility() < distance)
       return;
 
     traverse(node, nv);

Attachment: Scenery.diff.bz2
Description: Binary data

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to