Changeset 1272


Ignore:
Timestamp:
08/24/06 12:13:34 (18 years ago)
Author:
bittner
Message:

mlrta configuration changes

Location:
GTP/trunk/Lib/Vis/Preprocessing/src
Files:
2 added
12 edited

Legend:

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

    r1261 r1272  
    499499        if ((int)(leaf->mObjects.size()) > mBvhStats.maxObjectRefs) 
    500500                mBvhStats.maxObjectRefs = (int)leaf->mObjects.size(); 
     501 
    501502} 
    502503 
     
    15931594} 
    15941595 
    1595  
    1596 } 
     1596} 
     1597 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Makefile

    r1248 r1272  
    11############################################################################# 
    22# Makefile for building: preprocessor 
    3 # Generated by qmake (2.00a) (Qt 4.1.2) on: po 21. VIII 11:15:08 2006 
     3# Generated by qmake (2.00a) (Qt 4.1.2) on: út 22. VIII 22:47:13 2006 
    44# Project:  preprocessor.pro 
    55# Template: app 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ObjParser.cpp

    r1233 r1272  
    1515 
    1616 
     17 
    1718namespace GtpVisibilityPreprocessor { 
    1819 
     
    4849                           map<int, Vector3> &hashTable) 
    4950{ 
    50         cout << "f"; 
     51  //    cout << "f"; 
    5152 
    5253        char *pch; 
     
    156157         
    157158        SceneGraphNode *root = new SceneGraphNode; 
    158          
     159        cout<<"HERE2!\n"; 
    159160        int meshGrouping; 
    160161        Environment::GetSingleton()->GetIntValue("ObjParser.meshGrouping", meshGrouping); 
     
    167168                        { 
    168169                                float x,y,z; 
    169                                 cout << "v"; 
     170                                //cout << "v"; 
    170171 
    171172                                // vertex  
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp

    r1264 r1272  
    238238 
    239239                if (mRayCastMethod == Preprocessor::INTEL_RAYCASTER) 
    240                         result = parser->ParseFile(filename, &mSceneGraph->mRoot, mLoadPolygonsAsMeshes, &mFaceParents); 
     240                  result = parser->ParseFile(filename, &mSceneGraph->mRoot, 
     241                                                                         mLoadPolygonsAsMeshes, 
     242                                                                         &mFaceParents); 
    241243                else 
    242                         result = parser->ParseFile(filename, &mSceneGraph->mRoot, mLoadPolygonsAsMeshes); 
    243  
     244                  result = parser->ParseFile(filename, &mSceneGraph->mRoot, mLoadPolygonsAsMeshes); 
     245                 
    244246                delete parser; 
    245247 
     
    248250                mSceneGraph->mRoot = new SceneGraphNode; 
    249251                for (int i= 0; i < filenames.size(); i++) { 
    250                         if (strstr(filenames[i].c_str(), ".x3d")) 
    251                                 parser = new X3dParser; 
    252                         else  
    253                                 parser = new UnigraphicsParser; 
    254                                                  
    255                         SceneGraphNode *node; 
    256                         if (parser->ParseFile(filenames[i], &node)) { 
    257                                 mSceneGraph->mRoot->mChildren.push_back(node); 
    258                                 // at least one file parsed 
    259                                 result = true; 
    260                         } 
    261                         delete parser; 
     252                  if (strstr(filenames[i].c_str(), ".x3d")) 
     253                        parser = new X3dParser; 
     254                  else  
     255                        parser = new UnigraphicsParser; 
     256                   
     257                  SceneGraphNode *node; 
     258                  bool success; 
     259                   
     260                  if (mRayCastMethod == Preprocessor::INTEL_RAYCASTER) 
     261                        success = parser->ParseFile(filename, &node, 
     262                                                                                mLoadPolygonsAsMeshes, 
     263                                                                                &mFaceParents); 
     264                  else 
     265                        success = parser->ParseFile(filename, &node, mLoadPolygonsAsMeshes); 
     266                   
     267                  if (success) { 
     268                        mSceneGraph->mRoot->mChildren.push_back(node); 
     269                        // at least one file parsed 
     270                        result = true; 
     271                  } 
     272                   
     273                  delete parser; 
    262274                } 
    263275        } 
    264276         
    265  
     277         
    266278        if (result)  
    267         { 
     279          { 
    268280                // HACK  
    269281                if (ADDITIONAL_GEOMETRY_HACK) 
     
    769781        case INTEL_RAYCASTER: 
    770782#ifdef GTP_INTERNAL 
    771                 return mlrtaLoadAS(externKdTree.c_str()); 
     783          cout<<"Ray Cast file: "<<externKdTree<<endl; 
     784          return mlrtaLoadAS(externKdTree.c_str()); 
    772785#endif 
    773786        case INTERNAL_RAYCASTER: 
     
    851864        float pforg[3]; 
    852865        float pfdir[3]; 
    853         //double pfnorm[3]; 
     866        double pfnorm[3]; 
    854867 
    855868        pforg[0] = viewPoint[0]; pforg[1] = viewPoint[1]; pforg[2] = viewPoint[2]; 
     
    895908                                                                  ) 
    896909{ 
    897     int hits = 0; 
    898         static Ray ray; 
    899  
    900         AxisAlignedBox3 sbox = box; 
    901         sbox.Enlarge(Vector3(-Limits::Small)); 
    902  
    903         if (!sbox.IsInside(viewPoint)) 
     910 
     911  int hits = 0; 
     912  static Ray ray; 
     913  Intersectable *objectA, *objectB; 
     914  Vector3 pointA, pointB; 
     915 
     916  //  AxisAlignedBox3 box = Union(mKdTree->GetBox(), mViewCellsManager->GetViewSpaceBox()); 
     917   
     918 
     919  AxisAlignedBox3 sbox = box; 
     920  sbox.Enlarge(Vector3(-Limits::Small)); 
     921  if (!sbox.IsInside(viewPoint)) 
     922        return 0; 
     923         
     924  SetupRay(ray, viewPoint, direction); 
     925  ray.mFlags &= ~Ray::CULL_BACKFACES; 
     926 
     927  // cast ray to KD tree to find intersection with other objects 
     928  float bsize = Magnitude(box.Size()); 
     929   
     930   
     931  if (mKdTree->CastRay(ray)) { 
     932        objectA = ray.intersections[0].mObject; 
     933        pointA = ray.Extrap(ray.intersections[0].mT); 
     934        if (mDetectEmptyViewSpace) 
     935          if (DotProd(ray.intersections[0].mNormal, direction) >= 0) { 
     936                // discard the sample 
    904937                return 0; 
    905          
    906         SetupRay(ray, viewPoint, direction); 
    907          
    908         // cast ray to KD tree to find intersection with other objects 
    909         Intersectable *objectA, *objectB; 
    910          
    911         Vector3 pointA; 
    912         Vector3 pointB; 
    913  
    914         //float bsize = Magnitude(box.Size()); 
    915         if (!mDetectEmptyViewSpace) 
    916                 ray.mFlags &= ~Ray::CULL_BACKFACES; 
     938          } 
     939         
     940  } else { 
     941        objectA = NULL; 
     942        // compute intersection with the scene bounding box 
     943        float tmin, tmax; 
     944        if (box.ComputeMinMaxT(ray, &tmin, &tmax) && tmin < tmax) 
     945          pointA = ray.Extrap(tmax); 
    917946        else 
    918                 ray.mFlags |= Ray::CULL_BACKFACES; 
    919  
    920         if (mKdTree->CastRay(ray))  
    921         { 
    922                 objectA = ray.intersections[0].mObject; 
    923                 pointA = ray.Extrap(ray.intersections[0].mT); 
    924         }  
    925         else  
    926         { 
    927                 objectA = NULL; 
    928                 // compute intersection with the scene bounding box 
    929                 float tmin, tmax; 
    930                 if (box.ComputeMinMaxT(ray, &tmin, &tmax) && tmin < tmax) 
    931                         pointA = ray.Extrap(tmax); 
    932                 else 
    933                         return 0; 
    934         } 
    935  
    936         // matt: point A could be undefined? 
    937  
    938         // cast ray into opposite direction 
    939         if (1 && mDetectEmptyViewSpace) { 
    940                 SetupRay(ray, pointA, -direction); 
    941         } else 
    942                 SetupRay(ray, viewPoint, -direction); 
    943    
    944         if (!mDetectEmptyViewSpace) 
    945                 ray.mFlags &= ~Ray::CULL_BACKFACES; 
     947          return 0; 
     948  } 
     949 
     950   
     951  SetupRay(ray, viewPoint, -direction); 
     952  ray.mFlags &= ~Ray::CULL_BACKFACES; 
     953   
     954  if (mKdTree->CastRay(ray)) { 
     955        objectB = ray.intersections[0].mObject; 
     956        pointB = ray.Extrap(ray.intersections[0].mT); 
     957        if (mDetectEmptyViewSpace) 
     958          if (DotProd(ray.intersections[0].mNormal, direction) <= 0) { 
     959                // discard the sample 
     960                return 0; 
     961          } 
     962  } else { 
     963        objectB = NULL; 
     964        float tmin, tmax; 
     965        if (box.ComputeMinMaxT(ray, &tmin, &tmax) && tmin < tmax) 
     966          pointB = ray.Extrap(tmax); 
    946967        else 
    947                 ray.mFlags |= Ray::CULL_BACKFACES; 
    948  
    949         if (mKdTree->CastRay(ray))  
    950         { 
    951                 objectB = ray.intersections[0].mObject; 
    952                 pointB = ray.Extrap(ray.intersections[0].mT); 
    953         }  
    954         else  
    955         { 
    956                 objectB = NULL; 
    957                 float tmin, tmax; 
    958                  
    959                 if (box.ComputeMinMaxT(ray, &tmin, &tmax) && tmin < tmax) 
    960                         pointB = ray.Extrap(tmax); 
    961                 else 
    962                         return 0; 
    963         } 
    964    
    965         //bool thesame = objectA && (objectA == objectB); 
    966          
    967         //  if (objectA == NULL && objectB != NULL) { 
    968         if (1 && mDetectEmptyViewSpace)  
    969         { 
    970                 // cast again to ensure that there is no objectA 
    971                 SetupRay(ray, pointB, direction); 
    972                 ray.mFlags |= Ray::CULL_BACKFACES; 
    973                  
    974                 if (mKdTree->CastRay(ray))  
    975                 { 
    976                         objectA = ray.intersections[0].mObject; 
    977                         pointA = ray.Extrap(ray.intersections[0].mT); 
    978                 } 
    979         } 
    980  
    981    
    982         VssRay *vssRay  = NULL; 
    983  
    984         bool validSample = (objectA != objectB); 
    985          
    986         //if (validSample && thesame) Debug << "warning!!" << endl; 
    987  
    988         if (0 && mDetectEmptyViewSpace)  
    989         {    
    990                 // consider all samples valid 
    991                 // check if the viewpoint lies on the line segment AB 
    992                 if (Distance(pointA, pointB) < 
    993                         Distance(viewPoint, pointA) + Distance(viewPoint, pointB) - Limits::Small)  
    994                 { 
    995                         validSample = false; 
    996                 } 
    997         } 
    998          
    999         if (validSample)  
    1000         {        
    1001                 if (objectA)  
    1002                 { 
    1003                         vssRay = new VssRay(pointB, 
    1004                                                                 pointA, 
    1005                                                                 objectB, 
    1006                                                                 objectA, 
    1007                                                                 probability, 
    1008                                                                 mPass); 
    1009                         vssRays.push_back(vssRay); 
    1010                         hits ++; 
    1011                 } 
    1012  
    1013                 if (objectB)  
    1014                 { 
    1015                         vssRay = new VssRay(pointA, 
    1016                                                                 pointB, 
    1017                                                                 objectA, 
    1018                                                                 objectB, 
    1019                                                                 probability, 
    1020                                                                 mPass); 
    1021                         vssRays.push_back(vssRay); 
    1022                         hits ++; 
    1023                 } 
    1024                 //Debug << "internal ray: " << *vssRay << endl << endl; 
    1025         } 
    1026 //cout << "b"; 
    1027         return hits; 
     968          return 0; 
     969  } 
     970   
     971   
     972  VssRay *vssRay  = NULL; 
     973  bool validSample = (objectA != objectB); 
     974  if (validSample) { 
     975        if (objectA) { 
     976          vssRay = new VssRay(pointB, 
     977                                                  pointA, 
     978                                                  objectB, 
     979                                                  objectA, 
     980                                                  mPass, 
     981                                                  probability 
     982                                                  ); 
     983          vssRays.push_back(vssRay); 
     984          hits ++; 
     985        } 
     986         
     987        if (objectB) { 
     988          vssRay = new VssRay(pointA, 
     989                                                  pointB, 
     990                                                  objectA, 
     991                                                  objectB, 
     992                                                  mPass, 
     993                                                  probability 
     994                                                  ); 
     995          vssRays.push_back(vssRay); 
     996          hits ++; 
     997        } 
     998  } 
     999   
     1000  return hits; 
    10281001} 
    10291002 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.h

    r1264 r1272  
    134134   
    135135  enum { 
    136           INTERNAL_RAYCASTER, 
     136          INTERNAL_RAYCASTER = 0, 
    137137          INTEL_RAYCASTER 
    138138  }; 
     
    146146   
    147147  virtual void CastRays(SimpleRayContainer &rays, 
    148           VssRayContainer &vssRays) {}; 
     148                                                VssRayContainer &vssRays) {}; 
    149149 
    150150  /** Returns a view cells manager with respect to the given name. 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj

    r1261 r1272  
    2020                                Name="VCCLCompilerTool" 
    2121                                Optimization="0" 
    22                                 AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost\" 
     22                                AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost" 
    2323                                PreprocessorDefinitions="WIN32;_DEBUG;_LIB;" 
    2424                                MinimalRebuild="TRUE" 
     
    107107                        <Tool 
    108108                                Name="VCCLCompilerTool" 
    109                                 Optimization="0" 
     109                                Optimization="3" 
     110                                GlobalOptimizations="TRUE" 
    110111                                InlineFunctionExpansion="0" 
    111                                 FavorSizeOrSpeed="0" 
     112                                FavorSizeOrSpeed="1" 
     113                                OptimizeForProcessor="3" 
    112114                                OptimizeForWindowsApplication="TRUE" 
    113                                 AdditionalIncludeDirectories="..\include;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;&quot;$(CG_INC_PATH)&quot;;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(BOOST_INCLUDE)&quot;;..\..\Preprocessing\MultiLevelRayTracing" 
    114                                 PreprocessorDefinitions="WIN32;NDEBUG;_LIB" 
     115                                AdditionalIncludeDirectories="..\include;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\..\Preprocessing\MultiLevelRayTracing" 
     116                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL" 
    115117                                ExceptionHandling="TRUE" 
    116118                                RuntimeLibrary="2" 
     
    199201                        <Tool 
    200202                                Name="VCCLCompilerTool" 
    201                                 Optimization="0" 
     203                                Optimization="3" 
    202204                                InlineFunctionExpansion="0" 
    203205                                FavorSizeOrSpeed="0" 
     206                                OptimizeForProcessor="3" 
    204207                                OptimizeForWindowsApplication="TRUE" 
    205                                 AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(BOOST_INCLUDE)&quot;;..\MultiLevelRayTracing" 
     208                                AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing" 
    206209                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL" 
    207210                                ExceptionHandling="TRUE" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.cpp

    r1251 r1272  
    8686{ 
    8787  for (int i=0; i < rays.size(); i++) { 
    88         CastRay(rays[i].mOrigin, rays[i].mDirection, rays[i].mPdf, vssRays, mViewCellsManager->GetViewSpaceBox()); 
     88        CastRay(rays[i].mOrigin, 
     89                        rays[i].mDirection, 
     90                        rays[i].mPdf, 
     91                        vssRays, 
     92                        mViewCellsManager->GetViewSpaceBox()); 
    8993        if (i % 10000 == 0) 
    9094          cout<<"."; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj

    r1264 r1272  
    2020                                Name="VCCLCompilerTool" 
    2121                                Optimization="0" 
    22                                 AdditionalIncludeDirectories="..\include;..\src;&quot;$(CG_INC_PATH)&quot;;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(BOOST_INCLUDE)&quot;" 
     22                                AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost" 
    2323                                PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" 
    2424                                MinimalRebuild="TRUE" 
     
    122122                        <Tool 
    123123                                Name="VCCLCompilerTool" 
    124                                 Optimization="0" 
    125                                 AdditionalIncludeDirectories="..\include;&quot;$(BOOST_INCLUDE)&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;&quot;$(CG_INC_PATH)&quot;;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\MultiLevelRayTracing" 
    126                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" 
     124                                Optimization="3" 
     125                                GlobalOptimizations="TRUE" 
     126                                FavorSizeOrSpeed="1" 
     127                                OptimizeForProcessor="3" 
     128                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\MultiLevelRayTracing" 
     129                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL" 
    127130                                RuntimeLibrary="2" 
    128131                                RuntimeTypeInfo="TRUE" 
     
    135138                        <Tool 
    136139                                Name="VCLinkerTool" 
    137                                 AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib cg.lib cgGL.lib Preprocessor.lib" 
     140                                AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib cg.lib cgGL.lib Preprocessor.lib RTWorld.lib RTScene.lib" 
    138141                                OutputFile="$(OutDir)/Preprocessor.exe" 
    139142                                LinkIncremental="1" 
    140                                 AdditionalLibraryDirectories="..\support\xercesc\lib\;..\support\zlib\lib\;..\support\devil\lib;..\include;..\src\GL;&quot;$(CG_LIB_PATH)&quot;;..\lib\release;..\..\Preprocessing\lib\release;&quot;$(BOOST_LIB)&quot;;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\..\Preprocessing\MultiLevelRayTracing\RTScene\Release;..\..\Preprocessing\MultiLevelRayTracing\RTWorld\Release" 
     143                                AdditionalLibraryDirectories="..\src\mlrt;&quot;$(CG_LIB_PATH)&quot;;..\src\GL;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\..\Preprocessing\MultiLevelRayTracing\RTScene\Release;..\..\Preprocessing\MultiLevelRayTracing\RTWorld\Release" 
    141144                                GenerateDebugInformation="FALSE" 
    142145                                SubSystem="1" 
     
    174177                        <Tool 
    175178                                Name="VCCLCompilerTool" 
    176                                 Optimization="0" 
    177                                 AdditionalIncludeDirectories="..\include;&quot;$(BOOST_INCLUDE)&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces" 
     179                                Optimization="3" 
     180                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces" 
    178181                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL" 
    179182                                RuntimeLibrary="2" 
     
    190193                                OutputFile="../bin/release/Preprocessor.exe" 
    191194                                LinkIncremental="1" 
    192                                 AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;&quot;$(BOOST_LIB)&quot;;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release" 
     195                                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" 
    193196                                GenerateDebugInformation="FALSE" 
    194197                                SubSystem="1" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/X3dParser.cpp

    r1221 r1272  
    224224         } 
    225225 
     226          
    226227         //-- each polygon is one single mesh 
    227228         if (mLoadPolygonsAsMeshes) 
  • GTP/trunk/Lib/Vis/Preprocessing/src/default.env

    r1248 r1272  
    66Scene { 
    77 
     8filename ../data/CityModel/CityModel.obj 
     9# filename ../data/GrandCanyon/grandcanyon1_RotXmin90.obj 
    810# filename ../data/glasgow/glasgow1.x3d 
    911#       filename vienna.x3d 
     
    1113#filename ../data/vienna/vienna-buildings.x3d 
    1214#filename ../data/vienna/city1500_flat_1.x3d 
    13 filename ../data/vienna/vienna-buildings.x3d;../data/vienna/vienna-roofs.x3d 
     15#filename ../data/vienna/vienna-buildings.x3d;../data/vienna/vienna-roofs.x3d 
    1416#;../data/vienna/vienna-plane.x3d;../data/vienna/vienna-roads.x3d 
    1517# filename ../data/vienna/viewcells-25-sel.x3d 
     
    3133        # stored sample rays 
    3234        samplesFilename rays.out 
    33         useGlRenderer true 
     35        useGlRenderer false 
    3436        useGlDebugger false 
     37# 0 = INTERNAL          1 = MLRT 
     38 
     39        rayCastMethod 1 
     40         
    3541#       type sampling 
    3642#       type vss 
     
    4652        visibilityFilterWidth   0.01 
    4753        visibilityFile visibility.xml 
    48         loadPolygonsAsMeshes false 
     54        loadPolygonsAsMeshes true 
    4955} 
    5056 
     
    103109RssPreprocessor { 
    104110        samplesPerPass 1000 
    105         initialSamples 2000000 
    106         vssSamples 30000000 
    107         vssSamplesPerPass 1000000 
     111        initialSamples 1000000 
     112        vssSamples 10000000 
     113        vssSamplesPerPass 500000 
    108114        useImportanceSampling true 
    109115 
     
    143149        maxStaticMemory 100 
    144150 
    145         splitType regular 
     151#       splitType regular 
    146152#       splitType heuristic 
    147 #       splitType hybrid 
     153        splitType hybrid 
    148154        hybridDepth             10 
    149155        splitUseOnlyDrivingAxis false 
     
    187193MeshKdTree { 
    188194        Termination { 
    189                 minCost 8 
     195                minCost 32 
    190196                maxDepth 18 
    191197                maxCostRatio 0.9 
     
    291297#       filename ../data/soda/soda5-viewcell-single.xm 
    292298#       filename ../data/soda/vienna-viewcell-single.xml 
     299        filename ../data/CityModel/CityModel-viewcells-5000.xml 
    293300 
    294301 
     
    298305#       filename ../data/vienna/viewcells_vienna2.xml 
    299306#       filename ../data/vienna/vienna_simple-21-04-avs2-viewCells.xml 
    300         filename ../data/vienna/vienna-viewcells-5000.xml 
     307#       filename ../data/vienna/vienna-viewcells-5000.xml 
    301308 
    302309 
  • GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp

    r1264 r1272  
     1#ifdef GTP_INTERNAL 
     2//#define USE_QT 0 
     3#endif 
     4 
     5#define USE_BOOST 1 
     6 
    17#ifdef UNICODE 
    28#undef UNICODE 
     
    2026#include "ViewCell.h" 
    2127#include "SceneGraph.h" 
     28 
     29#if USE_BOOST 
    2230#include "BoostPreprocessorThread.h" 
     31#endif 
     32 
    2333#include "RenderSampler.h" 
    2434#include "ResourceManager.h" 
    2535#include "GlRenderer.h" 
     36 
     37#if USE_QT 
     38#include "QtRenderer/QtGlRenderer.h" 
     39#endif 
    2640 
    2741#define USE_EXE_PATH false 
     
    92106 
    93107 
     108string ReplaceSuffix(string filename, 
     109                                         string a, 
     110                                         string b) 
     111{ 
     112  string result = filename; 
     113 
     114  int pos = filename.rfind(a, filename.size()-1); 
     115  if (pos == filename.size() - a.size()) { 
     116        result.replace(pos, a.size(), b); 
     117  } 
     118  return result; 
     119} 
     120 
    94121int 
    95122main(int argc, char **argv) 
     
    101128        //be ignored. Use it as you will! 
    102129        //note: from GDNet Direct [3.8.04 - 3.14.04] void detectMemoryLeaks() { 
    103         _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF); 
    104         _CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE); 
    105         _CrtSetReportFile(_CRT_ASSERT,_CRTDBG_FILE_STDERR);  
    106  
     130#if 0 
     131  _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF); 
     132  _CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE); 
     133  _CrtSetReportFile(_CRT_ASSERT,_CRTDBG_FILE_STDERR);  
     134#endif 
     135 
     136  cerr<<"HERE!\n"; 
    107137        int returnCode = 0; 
    108138         
     
    163193        string filename(buff); 
    164194        preprocessor->LoadScene(filename); 
    165  
     195         
     196        string rayCastFile = ReplaceSuffix(filename, ".obj", ".kdf"); 
     197         
    166198        //-- initialize external ray casters 
    167         if (preprocessor->InitRayCast("../data/grandcanyon1_RotXmin90.kdf")) 
    168         { 
     199        if (preprocessor->InitRayCast(rayCastFile)) 
     200          { 
    169201                cout << "ray casting initialized!" << endl; 
    170         } 
     202          } 
    171203        else 
    172204        { 
     
    213245 
    214246        // create a preprocessor thread (note: capsulates calls to boost fuctions!) 
     247        //PreprocessorThread *pt = PreprocessorThreadFactory::Create(preprocessor); 
     248#if USE_BOOST 
    215249        BoostPreprocessorThread pt(preprocessor); 
    216  
    217         //PreprocessorThread *pt = PreprocessorThreadFactory::Create(preprocessor); 
    218  
     250#endif 
     251         
    219252        bool guiSupported = false; 
    220253        if (preprocessor->mUseGlRenderer || preprocessor->mUseGlDebugger) 
     
    222255                cout << "using gl widget" << endl; 
    223256                // create and run the preprocessor application in a parallel thread 
     257#if USE_BOOST 
    224258                pt.InitThread(); 
     259#endif 
    225260                //pt.RunThread(); 
    226261                 
    227262                // display the render widget 
    228                 if (!rendererWidget) 
     263                if (!rendererWidget) { 
     264 
     265#if !USE_QT 
    229266                  guiSupported = LoadMyDll(); 
     267#else 
     268                  rendererWidget = new QtGlRendererWidget(preprocessor->mSceneGraph, 
     269                                                                                                  preprocessor->mViewCellsManager, 
     270                                                                                                  preprocessor->mKdTree); 
     271#endif 
     272                } 
     273                 
    230274          } 
    231275         
     
    237281        if (!(preprocessor->mUseGlRenderer || preprocessor->mUseGlDebugger)) { 
    238282          // just call the mail method -> will be executed in the main thread 
     283#if USE_BOOST 
    239284          pt.Main(); 
     285#endif 
    240286        } 
    241287         
  • GTP/trunk/Lib/Vis/Preprocessing/src/preprocessor.pro

    r1248 r1272  
    33 
    44TEMPLATE = app 
     5 
    56 
    67TARGET = preprocessor 
     
    3132CONFIG(qt) { 
    3233win32:LIBPATH += "d:/Programs/NVIDIA Corporation/Cg/lib" 
     34CONFIG(debug) { 
     35LIBPATH += QtRenderer/debug 
     36} 
     37 
     38CONFIG(release) { 
     39LIBPATH += QtRenderer/release 
     40} 
    3341} 
    3442 
     
    4654} 
    4755 
    48 win32:LIBS += xerces-c_2.lib devil.lib ilu.lib ilut.lib \ 
    49 glew32.lib zlib.lib  
     56win32:LIBS += devil.lib ilu.lib ilut.lib glew32.lib zlib.lib zdll.lib zziplibd.lib 
     57 
     58CONFIG(release) { 
     59win32:LIBS += xerces-c_2.lib  
     60} 
     61 
     62CONFIG(debug) { 
     63win32:LIBS += xerces-c_2D.lib  
     64} 
    5065 
    5166QMAKE_LFLAGS_CONSOLE=/NODEFAULTLIB:LIBCMT 
    5267 
    5368CONFIG(qt) { 
    54 win32:LIBS += cg.lib cgGL.lib  
     69win32:LIBS += cg.lib cgGL.lib 
     70LIBS += QtRenderer.lib 
    5571} 
    5672 
     
    7692GzBinFileInputStream.cpp  GzFileInputSource.cpp \ 
    7793LogManager.cpp \ 
    78 SamplingStrategy.cpp KdIntersectable.cpp BoostPreprocessorThread.cpp \ 
    79 OspTree.cpp HierarchyManager.cpp ObjParser.cpp VspTree.cpp BvHierarchy.cpp  
    80  
     94SamplingStrategy.cpp KdIntersectable.cpp \ 
     95OspTree.cpp HierarchyManager.cpp ObjParser.cpp VspTree.cpp \ 
     96BvHierarchy.cpp  \ 
     97BoostPreprocessorThread.cpp  
    8198 
    8299 
     
    85102} 
    86103 
    87 #VspKdTree.cpp ResourceManager.cpp  
Note: See TracChangeset for help on using the changeset viewer.