Changeset 2238


Ignore:
Timestamp:
03/12/07 19:20:55 (17 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/Preprocessing/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp

    r2237 r2238  
    11221122                // should use classical approach here ... 
    11231123#if BOUND_RENDERCOST 
     1124                const float rcLeft = std::max(objectsLeft, MIN_RENDERCOST); 
     1125                const float rcRight = std::max(objectsRight, MIN_RENDERCOST); 
     1126 
    11241127                const float sum = noValidSplit ? 1e25f : objectsLeft * al + objectsRight * ar; 
    11251128#else 
    1126                 const float rcLeft = std::max(objectsLeft, MIN_RENDERCOST); 
    1127                 const float rcRight = std::max(objectsRight, MIN_RENDERCOST); 
    11281129 
    11291130                const float sum = noValidSplit ? 1e25f : objectsLeft * al + objectsRight * ar; 
    1130  
    11311131#endif 
    11321132                /*cout << "pos=" << (*cit).mPos << "\t q=(" << objectsLeft << "," << objectsRight <<")\t r=("  
     
    13731373        float volRight = totalVol; 
    13741374         
    1375 #if 1//USE_BETTER_RENDERCOST_EST 
    13761375        const float nTotalObjects = EvalAbsCost(tData.mNode->mObjects); 
    13771376        float nObjectsLeft = 0; 
    13781377        float nObjectsRight = nTotalObjects; 
    1379 #else 
    1380         const int nTotalObjects = (int)EvalAbsCost(tData.mNode->mObjects); 
    1381         int nObjectsLeft = 0; 
    1382         int nObjectsRight = (int)nTotalObjects; 
    1383 #endif 
    13841378 
    13851379        const float viewSpaceVol =  
     
    14401434 
    14411435#if BOUND_RENDERCOST 
     1436 
     1437                const float rcLeft = max(nObjectsLeft, MIN_RENDERCOST); 
     1438                const float rcRight = max(nObjectsRight, MIN_RENDERCOST); 
     1439                 
     1440                // the heuristics 
     1441            const float sum = noValidSplit ?  
     1442                        1e25f : volLeft * (float)rcLeft + volRight * (float)rcRight; 
     1443#else 
     1444         
    14421445                // the heuristics 
    14431446            const float sum = noValidSplit ?  
    14441447                        1e25f : volLeft * (float)nObjectsLeft + volRight * (float)nObjectsRight; 
    1445 #else 
    1446                 const float rcLeft = max(nObjectsLeft, MIN_RENDERCOST); 
    1447                 const float rcRight = max(nObjectsRight, MIN_RENDERCOST); 
    1448  
    1449                 // the heuristics 
    1450             const float sum = noValidSplit ?  
    1451                         1e25f : volLeft * (float)rcLeft + volRight * (float)rcRight; 
    1452  
    14531448#endif 
    14541449                 
     
    17921787        VssRayContainer::const_iterator rit, rit_end = rays.end(); 
    17931788 
     1789        VssRay *lastVssRay = NULL; 
     1790 
    17941791        VssRay::NewMail(); 
    17951792 
     
    17981795                VssRay *ray = (*rit); 
    17991796 
    1800                 if (ray->mTerminationObject) 
    1801                 { 
    1802                         ray->mTerminationObject->GetOrCreateRays()->push_back(ray); 
    1803                         if (!ray->Mailed()) 
     1797                // filter out double rays (last ray the same as this ray 
     1798                if (!lastVssRay || 
     1799                        !(ray->mOrigin == lastVssRay->mTermination) || 
     1800                        !(ray->mTermination == lastVssRay->mOrigin))  
     1801                { 
     1802                        //cout << "j"; 
     1803                        if (ray->mTerminationObject) 
    18041804                        { 
    1805                                 ray->Mail(); 
    1806                                 ++ nRays; 
     1805                                ray->mTerminationObject->GetOrCreateRays()->push_back(ray); 
     1806                                if (!ray->Mailed()) 
     1807                                { 
     1808                                        ray->Mail(); 
     1809                                        ++ nRays; 
     1810                                } 
    18071811                        } 
    1808                 } 
    18091812 
    18101813#if COUNT_ORIGIN_OBJECTS 
    18111814 
    1812                 if (ray->mOriginObject) 
    1813                 { 
    1814                         cout << "o"; 
    1815                         ray->mOriginObject->GetOrCreateRays()->push_back(ray); 
    1816  
    1817                         if (!ray->Mailed()) 
     1815                        if (ray->mOriginObject) 
    18181816                        { 
    1819                                 ray->Mail(); 
    1820                                 ++ nRays; 
     1817                                //cout << "o"; 
     1818                                ray->mOriginObject->GetOrCreateRays()->push_back(ray); 
     1819 
     1820                                if (!ray->Mailed()) 
     1821                                { 
     1822                                        ray->Mail(); 
     1823                                        ++ nRays; 
     1824                                } 
    18211825                        } 
    18221826                } 
  • GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj

    r2237 r2238  
    215215                                Name="VCLinkerTool" 
    216216                                AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib Preprocessor.lib RTScene.lib RTWorld.lib QtCore4.lib qtmain.lib cg.lib cgGL.lib QtOpenGL4.lib Qt3Support4.lib QtTest4.lib QtGui4.lib QtInterface.lib" 
    217                                 OutputFile="../bin/release/Preprocessor.exe" 
     217                                OutputFile="../bin/release/Preprocessor2.exe" 
    218218                                LinkIncremental="1" 
    219219                                AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release;&quot;$(QTDIR)\lib&quot;;.\QtInterface\Release;&quot;$(CG_LIB_PATH)&quot;" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp

    r2237 r2238  
    902902 
    903903int VspTree::EvalPvsEntriesIncr(VspSubdivisionCandidate &splitCandidate, 
    904                                                                 const float oldPvsSize, 
    905                                                                 const float fPvsSize, 
    906                                                                 const float bPvsSize) const 
     904                                                                const int oldPvsSize, 
     905                                                                const int fPvsSize, 
     906                                                                const int bPvsSize) const 
    907907{ 
    908908         
     
    914914 
    915915        splitCandidate.mCorrectedFrontPvs =  
    916                 mHierarchyManager->EvalCorrectedPvs(fPvsSize,  
    917                                                                                         correctedOldPvs,  
     916                mHierarchyManager->EvalCorrectedPvs((float)fPvsSize,  
     917                                                                                        (float)correctedOldPvs,  
    918918                                                                                        splitCandidate.GetAvgRaysPerObject()); 
    919919        splitCandidate.mCorrectedBackPvs =  
    920                 mHierarchyManager->EvalCorrectedPvs(bPvsSize,  
    921                                                                                         correctedOldPvs,  
     920                mHierarchyManager->EvalCorrectedPvs((float)bPvsSize,  
     921                                                                                        (float)correctedOldPvs,  
    922922                                                                                        splitCandidate.GetAvgRaysPerObject()); 
    923923         
    924         splitCandidate.mFrontPvs = fPvsSize; 
    925         splitCandidate.mBackPvs = bPvsSize; 
     924        splitCandidate.mFrontPvs = (float)fPvsSize; 
     925        splitCandidate.mBackPvs = (float)bPvsSize; 
    926926 
    927927        if (0) 
     
    30593059                else 
    30603060                { 
     3061                        //cout << "o"; 
    30613062                        // store object only for one ray 
    3062                         lastVssRay->mOriginObject = ray->mTerminationObject; 
     3063                        //lastVssRay->mOriginObject = ray->mTerminationObject; 
    30633064                } 
    30643065        } 
Note: See TracChangeset for help on using the changeset viewer.