Changeset 336


Ignore:
Timestamp:
10/18/05 02:20:58 (19 years ago)
Author:
mattausch
Message:

added balanced rays / least ray split criteria

Location:
trunk/VUT/GtpVisibilityPreprocessor/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibilityPreprocessor/src/ViewCellBsp.cpp

    r335 r336  
    4141 
    4242/** Evaluates split plane classification with respect to the plane's  
    43         contribution for a balanced tree. 
     43        contribution for a minimum number splits in the tree. 
    4444*/ 
    4545float BspTree::sLeastSplitsTable[] = {0, 0, 1, 0}; 
    4646/** Evaluates split plane classification with respect to the plane's  
    47         contribution for a minimum number splits in the tree. 
     47        contribution for a balanced tree. 
    4848*/ 
    49 float BspTree::sBalancedPolysTable[] = {-1, 1, 0, 0}; 
     49float BspTree::sBalancedTreeTable[] = {-1, 1, 0, 0}; 
    5050 
    5151/****************************************************************/ 
     
    11081108 
    11091109                if (sSplitPlaneStrategy & BALANCED_POLYS) 
    1110                         sumBalancedPolys += sBalancedPolysTable[classification]; 
     1110                        sumBalancedPolys += sBalancedTreeTable[classification]; 
    11111111                 
    11121112                if (sSplitPlaneStrategy & LEAST_SPLITS) 
     
    11261126                        if (classification == Plane3::COINCIDENT) 
    11271127                                sumBlockedRays += blockedRays; 
    1128                         Debug << "adding rays: " << blockedRays << endl; 
    1129  
     1128                         
    11301129                        totalBlockedRays += blockedRays; 
    11311130                } 
     
    11391138                        { 
    11401139                                viewCell->Mail(); 
    1141  
    1142                                 if (classification == Plane3::FRONT_SIDE) 
    1143                                         sumBalancedViewCells += 1.0f; 
    1144                                 else if (viewCell && (classification == Plane3::BACK_SIDE)) 
    1145                                         sumBalancedViewCells -= 1.0f; 
     1140                                sumBalancedViewCells += sBalancedTreeTable[classification]; 
     1141 
    11461142                                ++ totalViewCells; 
    11471143                        } 
     
    11851181        for (rit = rays.begin(); rit != rays.end(); ++ rit) 
    11861182        { 
     1183                Ray *ray = *rit; 
     1184 
     1185                float maxT = 1e6; 
     1186                float minT = 0; 
     1187         
     1188                // test with tree bounding box 
     1189                /*if (!mBox.GetMinMaxT(*ray, &minT, &maxT)) 
     1190                        continue; 
     1191                if (minT < 0) // start ray from origin 
     1192                        minT = 0;*/ 
     1193 
     1194                // bound ray 
     1195                if ((ray->GetType() == Ray::LOCAL_RAY) &&  
     1196                        (!ray->intersections.empty())      && 
     1197                        (ray->intersections[0].mT <= maxT)) 
     1198                { 
     1199                        maxT = ray->intersections[0].mT; 
     1200                } 
     1201 
     1202                int classification = ray->ClassifyPlane(candidatePlane, minT, maxT); 
     1203 
    11871204                if (sSplitPlaneStrategy & LEAST_RAY_SPLITS) 
    11881205                { 
    1189                 } 
    1190  
     1206                        sumBalancedRays += sBalancedTreeTable[classification]; 
     1207                } 
     1208                 
    11911209                if (sSplitPlaneStrategy & BALANCED_RAYS) 
    11921210                { 
     1211                        sumRaySplits += sLeastSplitsTable[classification]; 
    11931212                } 
    11941213        } 
  • trunk/VUT/GtpVisibilityPreprocessor/src/ViewCellBsp.h

    r335 r336  
    635635                contribution for a minimum number splits in the tree. 
    636636        */ 
    637         static float sBalancedPolysTable[4]; 
     637        static float sBalancedTreeTable[4]; 
    638638}; 
    639639 
Note: See TracChangeset for help on using the changeset viewer.