Ignore:
Timestamp:
03/11/07 16:14:59 (18 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/Preprocessing/src
Files:
11 edited

Legend:

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

    r2227 r2228  
    11181118                ar = rbox.SurfaceArea(); 
    11191119 
     1120                // should use classical approach here ... 
    11201121#if BOUND_RENDERCOST 
    11211122                const float sum = noValidSplit ? 1e25f : objectsLeft * al + objectsRight * ar; 
     
    18901891        //-- surface area heuristics 
    18911892 
    1892         if (leaf->mObjects.empty()) 
    1893                 return 0.0f; 
     1893        // eraly exit 
     1894        //if (leaf->mObjects.empty())   return 0.0f; 
    18941895 
    18951896        const AxisAlignedBox3 box = GetBoundingBox(leaf); 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Environment.cpp

    r2227 r2228  
    26802680                                        "100000"); 
    26812681 
     2682        RegisterOption("Hierarchy.minRenderCost", 
     2683                                        optFloat, 
     2684                                        "hierarchy_minRenderCost=", 
     2685                                        "0"); 
     2686 
    26822687        RegisterOption("Hierarchy.subdivisionStats", 
    26832688                           optString, 
     
    27782783                                        optFloat, 
    27792784                                        "hierarchy_construction_max_avg_rays_per_object=", 
    2780                                         "2"); 
     2785                                        "0"); 
    27812786         
    27822787        RegisterOption("Hierarchy.Construction.minAvgRaysPerObject", 
    27832788                                        optFloat, 
    27842789                                        "hierarchy_construction_min_avg_rays_per_object=", 
    2785                                         "1"); 
     2790                                        "0"); 
    27862791         
    27872792        RegisterOption("Hierarchy.useTraversalTree", 
  • GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp

    r2227 r2228  
    105105        Environment::GetSingleton()->GetFloatValue( 
    106106                "Hierarchy.Termination.minGlobalCostRatio", mTermMinGlobalCostRatio); 
     107 
     108        Environment::GetSingleton()->GetFloatValue("Hierarchy.minRenderCost", mMinRenderCost); 
     109 
    107110        Environment::GetSingleton()->GetIntValue( 
    108111                "Hierarchy.Termination.globalCostMissTolerance", mTermGlobalCostMissTolerance); 
     
    179182        Debug << "max avg rays per object: " << mMaxAvgRaysPerObject << endl; 
    180183        Debug << "mín avg rays per object: " << mMinAvgRaysPerObject << endl; 
     184        Debug << "mín render cost: " << mMinRenderCost << endl; 
    181185 
    182186        // for comparing it with byte - value 
     
    833837                                                                                 const float avgRaysPerObjects) const 
    834838{ 
     839        // don't correct pvss 
     840        if (mMaxAvgRaysPerObject <= mMinAvgRaysPerObject) 
     841        { 
     842                return childPvs; 
     843        } 
     844         
    835845        // assume pvs sampled sufficiently => take child pvs 
    836846        if (avgRaysPerObjects > mMaxAvgRaysPerObject) 
     
    838848                return childPvs; 
    839849        } 
    840         // assume pvs not sampled sufficiently => take total pvs 
    841         else if (avgRaysPerObjects <= mMinAvgRaysPerObject) 
    842         { 
    843                 cout << "b ";// << avgRaysPerObjects << " "; 
     850 
     851        // assume pvs not sampled sufficiently => pvs equal to parent pvs 
     852        // we should not subdivide further from this point 
     853        if (avgRaysPerObjects <= mMinAvgRaysPerObject) 
     854        { 
     855                cout << "t ";// << avgRaysPerObjects << " "; 
    844856                return totalPvs; 
    845857        } 
     858 
     859        /////////// 
     860        //-- blend pvss 
    846861 
    847862        const float alpha = (mMaxAvgRaysPerObject - avgRaysPerObjects) /  
     
    857872        const float newPvs = alpha * childPvs + (1.0f - alpha) * totalPvs; 
    858873#endif 
    859 cout << "c ";// << avgRaysPerObjects << " "; 
     874cout << "b ";// << avgRaysPerObjects << " "; 
    860875        //cout << "alpha " << alpha << " beta: " << beta << " child: " << childPvs << " parent: " << totalPvs << endl; 
    861876         
     
    927942         
    928943        mPriority = sc->GetPriority(); 
     944 
     945        cout << sc->Type() << " "; 
    929946 
    930947        ////////// 
     
    11601177                { 
    11611178                        //sc->CollectDirtyCandidates(dirtyCandidates, true); 
    1162                         //if (steps % 10 == 0) 
    1163                                 cout << sc->Type() << " "; 
     1179                        //if (steps % 10 == 0) cout << sc->Type() << " "; 
    11641180                         
    11651181                        ++ steps; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.h

    r2227 r2228  
    625625        bool mUseTraversalTree; 
    626626 
     627        float mMinRenderCost; 
     628 
    627629protected: 
    628630 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj

    r2199 r2228  
    236236                                OptimizeForWindowsApplication="1" 
    237237                                AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(CG_INC_PATH)&quot;;Timer;..\src\sparsehash\src\google\sparsehash;..\src\sparsehash\src\windows;..\src\sparsehash\src\google;..\src\sparsehash\src;..\src\ootl\;..\src\ootl\src\;..\src\ootl\src\cpp;..\src\ootl\src\cpp\include\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;..\src\ootl\src\cpp\include\ootl\mswin" 
    238                                 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;USE_QT;USE_HASH_PVS" 
     238                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;USE_QT;USE_HASH_PV" 
    239239                                ExceptionHandling="1" 
    240240                                RuntimeLibrary="2" 
     
    275275                        <Tool  
    276276                                Name="GeneralTool" 
    277                                 OutputDirectory="$(ConfigurationName)" 
    278                                 IntermediateDirectory="$(ConfigurationName)" 
     277                                OutputDirectory="Release" 
     278                                IntermediateDirectory="Release" 
    279279                                ConfigurationType="4" 
    280280                                CharacterSet="2"/> 
     
    290290                                OmitFramePointers="1" 
    291291                                EnableFiberSafeOptimizations="1" 
    292                                 OptimizeForProcessor="0" 
     292                                OptimizeForProcessor="1" 
    293293                                OptimizeForWindowsApplication="1" 
    294                                 AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;Timer" 
     294                                AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;" 
    295295                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;NO_QT" 
    296296                                StringPooling="1" 
     
    305305                                WarningLevel="2" 
    306306                                Detect64BitPortabilityProblems="1" 
    307                                 DebugInformationFormat="3"/> 
     307                                DebugInformationFormat="3" 
     308                                UseProcExt="3" 
     309                                RequireProcExt="3"/> 
    308310                        <Tool  
    309311                                Name="LinkerTool" 
     
    468470                        RelativePath=".\HashPvs.h"/> 
    469471                <File  
     472                        RelativePath=".\HashPvs2.h"/> 
     473                <File  
    470474                        RelativePath=".\HierarchyManager.cpp"/> 
    471475                <File  
     
    932936                        RelativePath=".\sparsehash\src\google\sparsehash\densehashtable.h"/> 
    933937                <File  
     938                        RelativePath=".\sparsehash\src\google\sparsehash\hash_fun.h"/> 
     939                <File  
    934940                        RelativePath=".\sparsehash\src\windows\hash_fun.h"/> 
    935                 <File  
    936                         RelativePath=".\sparsehash\src\google\sparsehash\hash_fun.h"/> 
    937941                <File  
    938942                        RelativePath=".\sparsehash\src\windows\hash_map.h"/> 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj

    r2206 r2228  
    260260                <Configuration 
    261261                        Name="release_noqt|Win32" 
    262                         OutputDirectory="$(ConfigurationName)" 
    263                         IntermediateDirectory="$(ConfigurationName)" 
     262                        OutputDirectory="Release" 
     263                        IntermediateDirectory="Release" 
    264264                        ConfigurationType="4" 
    265265                        CharacterSet="2"> 
     
    267267                                Name="VCCLCompilerTool" 
    268268                                Optimization="3" 
    269                                 InlineFunctionExpansion="0" 
    270                                 FavorSizeOrSpeed="0" 
    271                                 OptimizeForProcessor="3" 
     269                                GlobalOptimizations="TRUE" 
     270                                InlineFunctionExpansion="2" 
     271                                EnableIntrinsicFunctions="TRUE" 
     272                                FavorSizeOrSpeed="1" 
     273                                OmitFramePointers="TRUE" 
     274                                EnableFiberSafeOptimizations="TRUE" 
     275                                OptimizeForProcessor="1" 
    272276                                OptimizeForWindowsApplication="TRUE" 
    273277                                AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;" 
    274278                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;NO_QT" 
     279                                StringPooling="TRUE" 
    275280                                ExceptionHandling="TRUE" 
    276281                                RuntimeLibrary="2" 
     282                                EnableEnhancedInstructionSet="2" 
    277283                                DisableLanguageExtensions="FALSE" 
    278284                                ForceConformanceInForLoopScope="FALSE" 
    279                                 RuntimeTypeInfo="TRUE" 
     285                                RuntimeTypeInfo="FALSE" 
    280286                                UsePrecompiledHeader="0" 
    281287                                BrowseInformation="1" 
     
    11601166                        </File> 
    11611167                        <File 
     1168                                RelativePath=".\sparsehash\src\windows\hash_fun.h"> 
     1169                        </File> 
     1170                        <File 
    11621171                                RelativePath=".\sparsehash\src\google\sparsehash\hash_fun.h"> 
    1163                         </File> 
    1164                         <File 
    1165                                 RelativePath=".\sparsehash\src\windows\hash_fun.h"> 
    11661172                        </File> 
    11671173                        <File 
  • GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.icproj

    r2199 r2228  
    204204                                OptimizeForWindowsApplication="1" 
    205205                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;;QtInterface;..\src\sparsehash\src\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;$(NOINHERIT)" 
    206                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;USE_QT;USE_CG;USE_HASH_PVS" 
     206                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;USE_QT;USE_CG;USE_HASH_PV" 
     207                                StringPooling="1" 
    207208                                ExceptionHandling="1" 
    208209                                RuntimeLibrary="2" 
     
    266267                                OmitFramePointers="1" 
    267268                                EnableFiberSafeOptimizations="1" 
    268                                 OptimizeForProcessor="0" 
     269                                OptimizeForProcessor="1" 
    269270                                OptimizeForWindowsApplication="1" 
    270271                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;" 
    271272                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;NO_QT" 
    272                                 StringPooling="1" 
    273                                 MinimalRebuild="0" 
    274273                                RuntimeLibrary="2" 
    275274                                EnableEnhancedInstructionSet="2" 
     
    278277                                WarningLevel="3" 
    279278                                Detect64BitPortabilityProblems="1" 
    280                                 DebugInformationFormat="3"/> 
     279                                DebugInformationFormat="3" 
     280                                UseProcExt="3" 
     281                                RequireProcExt="3"/> 
    281282                        <Tool  
    282283                                Name="LinkerTool" 
     
    285286                                OutputFile="../bin/release/Preprocessor.exe" 
    286287                                LinkIncremental="1" 
    287                                 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" 
    288                                 GenerateDebugInformation="0" 
    289                                 SubSystem="1" 
    290                                 LargeAddressAware="0" 
     288                                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;;.\QtGlRenderer\Release" 
     289                                GenerateDebugInformation="0" 
     290                                SubSystem="1" 
    291291                                OptimizeReferences="2" 
    292292                                EnableCOMDATFolding="2" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj

    r2206 r2228  
    257257                                GlobalOptimizations="TRUE" 
    258258                                InlineFunctionExpansion="2" 
    259                                 FavorSizeOrSpeed="1" 
     259                                EnableIntrinsicFunctions="TRUE" 
     260                                FavorSizeOrSpeed="1" 
     261                                OmitFramePointers="TRUE" 
    260262                                EnableFiberSafeOptimizations="TRUE" 
    261                                 OptimizeForProcessor="3" 
     263                                OptimizeForProcessor="1" 
    262264                                OptimizeForWindowsApplication="TRUE" 
    263265                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;" 
    264266                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;NO_QT" 
    265267                                RuntimeLibrary="2" 
    266                                 RuntimeTypeInfo="TRUE" 
     268                                EnableEnhancedInstructionSet="2" 
     269                                RuntimeTypeInfo="FALSE" 
    267270                                UsePrecompiledHeader="0" 
    268271                                WarningLevel="3" 
     
    281284                                OptimizeReferences="2" 
    282285                                EnableCOMDATFolding="2" 
     286                                OptimizeForWindows98="1" 
    283287                                TargetMachine="1" 
    284288                                FixedBaseAddress="1"/> 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp

    r2227 r2228  
    24882488          stat.avgFilterRatio/=stat.viewcells;  
    24892489          stat.avgRelPvsIncrease/=stat.viewcells; 
    2490            
     2490          stat.renderCostRatio=stat.renderCost / stat.mem; 
     2491 
    24912492          // evaluate std deviation of relPvsIncrease 
    24922493          float sum=0.0f; 
     
    25182519  s<<"#DEV_REL_PVS_INCREASE\n"<<pvsStat.devRelPvsIncrease<<endl; 
    25192520  s<<"#MEMORY\n"<<pvsStat.mem<<endl; 
    2520  
     2521  s<<"#RATIO\n"<<pvsStat.renderCost / (pvsStat.mem + Limits::Small)<<endl; 
    25212522  s<<"#CONTRIBUTING_RAYS\n"<<mSamplesStat.mContributingRays<<endl; 
    25222523 
     
    68756876                Debug << "finished in " << timeDiff * 1e-3f << " secs" << endl; 
    68766877                 
    6877                 // don't use sample contributions because already accounted for inside the mixture distribution! 
     6878                // don't computed sample contributions  
     6879                // because already accounted for inside the mixture distribution! 
    68786880                 
    68796881                castSamples += samplesPerPass; 
     
    69486950        //////////// 
    69496951        //-- histogram 
    6950 #if 1 
     6952 
    69516953        const int numLeaves = mViewCellsTree->GetNumInitialViewCells(mViewCellsTree->GetRoot()); 
    69526954        int histoStepSize; 
     
    69816983                } 
    69826984        } 
    6983 #endif 
    69846985} 
    69856986 
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp

    r2227 r2228  
    13431343 
    13441344#endif 
     1345#if VISUALIZE_SPLIT 
     1346        Exporter *exporter = Exporter::GetExporter("split.wrl"); 
     1347        exporter->ExportBox(box); 
     1348 
     1349                RayInfoContainer::const_iterator rit, rit_end = tData.mRays->end(); 
     1350 
     1351        for (rit = tData.mRays->begin(); rit != rit_end; ++ rit) 
     1352        { 
     1353                RayInfo rayInf = *rit; 
     1354 
     1355                VssRay *ray = rayInf.mRay; 
     1356                 
     1357                exporter->ExportIntersectable(GetParentObject(ray->mTerminationObject)); 
     1358 
     1359                AxisAlignedBox3 candidatePlane; 
     1360                exporter->ExportBox(candidatePlane); 
     1361        } 
     1362    delete exporter; 
     1363#endif 
    13451364        for (ci = mLocalSubdivisionCandidates->begin(); ci != ci_end; ++ ci) 
    13461365        { 
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h

    r2227 r2228  
    10241024        /** Returns true if global tree can be terminated. 
    10251025        */ 
    1026         inline bool GlobalTerminationCriteriaMet(const VspTraversalData &data) const; 
     1026        bool GlobalTerminationCriteriaMet(const VspTraversalData &data) const; 
    10271027 
    10281028        /** Adds ray sample contributions to the PVS. 
Note: See TracChangeset for help on using the changeset viewer.