Changeset 1913 for GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp
- Timestamp:
- 12/20/06 12:18:41 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp
r1912 r1913 346 346 VspLeaf::VspLeaf(): 347 347 mViewCell(NULL), mSubdivisionCandidate(NULL) 348 //, mPvs(NULL)349 348 { 350 349 } … … 380 379 VspLeaf::VspLeaf(VspInterior *parent): 381 380 VspNode(parent), mViewCell(NULL) 382 //, mPvs(NULL)383 381 {} 384 382 … … 386 384 VspLeaf::VspLeaf(VspInterior *parent, ViewCellLeaf *viewCell): 387 385 VspNode(parent), mViewCell(viewCell) 388 //, mPvs(NULL)389 386 { 390 387 } … … 735 732 736 733 mTotalCost -= sc->GetRenderCostDecrease(); 737 mTotalPvsSize += (int)(tFrontData.mPvs + tBackData.mPvs - tData.mPvs);734 //mTotalPvsSize += (int)(tFrontData.mPvs + tBackData.mPvs - tData.mPvs); 738 735 mPvsEntries += sc->GetPvsEntriesIncr(); 739 736 … … 899 896 } 900 897 901 const float oldPvsRatio = oldPvsSize / splitCandidate.mParentData.mPvs; 898 const float oldPvsRatio = (splitCandidate.mParentData.mPvs > 0) ? 899 oldPvsSize / splitCandidate.mParentData.mPvs : 1; 902 900 const float correctedOldPvs = splitCandidate.mParentData.mCorrectedPvs * oldPvsRatio; 903 901 904 902 cout <<"here102 "<< endl; 905 903 cout << "old pvs ratio: " << oldPvsRatio << endl; 906 const float correctedFrontPvs =904 splitCandidate.mCorrectedFrontPvs = 907 905 mHierarchyManager->EvalCorrectedPvs(fPvsSize, 908 906 correctedOldPvs, 909 907 splitCandidate.GetAvgRayContribution()); 910 908 cout <<"here103 "<< endl; 911 const float correctedBackPvs =909 splitCandidate.mCorrectedBackPvs = 912 910 mHierarchyManager->EvalCorrectedPvs(bPvsSize, 913 911 correctedOldPvs, … … 915 913 916 914 917 cout << "vsp front entries " << fPvsSize << " corrected: " << correctedFrontPvs << endl;918 cout << "vsp back entries " << bPvsSize << " corrected: " << correctedBackPvs << endl;919 920 return (int)( correctedFrontPvs + correctedBackPvs - correctedOldPvs);915 cout << "vsp front entries " << fPvsSize << " corrected: " << splitCandidate.mCorrectedFrontPvs << endl; 916 cout << "vsp back entries " << bPvsSize << " corrected: " << splitCandidate.mCorrectedBackPvs << endl; 917 918 return (int)(splitCandidate.mCorrectedFrontPvs + splitCandidate.mCorrectedBackPvs - correctedOldPvs); 921 919 } 922 920 … … 961 959 962 960 //-- compute render cost 963 frontData.mRenderCost = (float)Eval RenderCost(*frontData.mRays);964 backData.mRenderCost = (float)Eval RenderCost(*backData.mRays);965 966 frontData.mCorrectedRenderCost = sc.mCorrectedFront Pvs;967 backData.mCorrectedRenderCost = sc.mCorrectedBack Pvs;961 frontData.mRenderCost = (float)EvalPvsCost(*frontData.mRays); 962 backData.mRenderCost = (float)EvalPvsCost(*backData.mRays); 963 964 frontData.mCorrectedRenderCost = sc.mCorrectedFrontRenderCost; 965 backData.mCorrectedRenderCost = sc.mCorrectedBackRenderCost; 968 966 969 967 //////// … … 1605 1603 //-- evaluate render cost heuristics 1606 1604 1607 const float oldRenderCostRatio = tData.mPvs ? (totalPvs / tData.mPvs) : 1; 1608 1609 const float penaltyOld = tData.mCorrectedPvs * oldRenderCostRatio; 1610 1611 cout <<"here107 " << penaltyOld << endl; 1612 sc.mCorrectedFrontPvs = mHierarchyManager->EvalCorrectedPvs(pvsFront, penaltyOld, avgRayContri); 1613 cout <<"here108 " << tData.mCorrectedPvs << " " << oldRenderCostRatio << endl; 1614 sc.mCorrectedBackPvs = mHierarchyManager->EvalCorrectedPvs(pvsBack, penaltyOld, avgRayContri); 1615 1616 cout << "vsp front pvs " << pvsFront << " corrected: " << sc.mCorrectedFrontPvs << endl; 1617 cout << "vsp back pvs " << pvsBack << " corrected: " << sc.mCorrectedBackPvs << endl; 1605 const float oldRenderCostRatio = (tData.mRenderCost > 0)? 1606 (totalPvs / tData.mRenderCost) : 1; 1607 1608 const float penaltyOld = tData.mCorrectedRenderCost * oldRenderCostRatio; 1609 1610 cout <<"here107 old render cost ratio " << oldRenderCostRatio << " old cost: " << penaltyOld << endl; 1611 sc.mCorrectedFrontRenderCost = mHierarchyManager->EvalCorrectedPvs(pvsFront, penaltyOld, avgRayContri); 1612 cout <<"here108 " << tData.mCorrectedRenderCost << " " << oldRenderCostRatio << endl; 1613 sc.mCorrectedBackRenderCost = mHierarchyManager->EvalCorrectedPvs(pvsBack, penaltyOld, avgRayContri); 1614 1615 cout << "vsp front pvs " << pvsFront << " corrected: " << sc.mCorrectedFrontRenderCost << endl; 1616 cout << "vsp back render cost " << pvsBack << " corrected: " << sc.mCorrectedBackRenderCost << endl; 1618 1617 1619 1618 const float oldRenderCost = pOverall * penaltyOld; 1620 const float newRenderCost = sc.mCorrectedFrontPvs * pFront + sc.mCorrectedBackPvs * pBack; 1619 const float newRenderCost = sc.mCorrectedFrontRenderCost * pFront + 1620 sc.mCorrectedFrontRenderCost * pBack; 1621 1621 1622 1622 // we also return the old render cost … … 2934 2934 VspTraversalData vData(leaf, 0, &rays, pvsCost, prop, mBoundingBox); 2935 2935 2936 2937 2936 #if WORK_WITH_VIEWCELL_PVS 2938 2937 // add first view cell to all the objects view cell pvs … … 2947 2946 #endif 2948 2947 2949 mTotalCost = vData.mCorrected Pvs= pvsCost;2950 mPvsEntries = EvalPvsEntriesSize(rays);2948 mTotalCost = vData.mCorrectedRenderCost = vData.mRenderCost = pvsCost; 2949 mPvsEntries = vData.mCorrectedPvs = vData.mPvs = EvalPvsEntriesSize(rays); 2951 2950 2952 2951 //////////////
Note: See TracChangeset
for help on using the changeset viewer.