Changeset 2123 for GTP/trunk/Lib/Vis/OnlineCullingCHC
- Timestamp:
- 02/17/07 22:48:12 (18 years ago)
- Location:
- GTP/trunk/Lib/Vis/OnlineCullingCHC
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/IVReader/src/IVReader.vcproj
r2122 r2123 24 24 MinimalRebuild="TRUE" 25 25 BasicRuntimeChecks="3" 26 RuntimeLibrary=" 1"26 RuntimeLibrary="3" 27 27 UsePrecompiledHeader="0" 28 28 WarningLevel="3" … … 73 73 Name="VCCLCompilerTool" 74 74 AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include" 75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IVREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE 1;USE_VERBOSE_PVS"75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IVREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 76 76 RuntimeLibrary="2" 77 77 UsePrecompiledHeader="0" -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgreBoundingBoxConverter.h
r2115 r2123 217 217 218 218 // we are only interested in scene entities 219 if (mo->getMovableType() != "Entity") 219 if ((mo->getMovableType() != "Entity") && 220 (mo->getMovableType() != "ManualObject")) 220 221 continue; 221 222 … … 237 238 } 238 239 240 static void AddToObjects(EntityContainer *entites, 241 GtpVisibilityPreprocessor::ObjectContainer &objects, 242 const int id) 243 { 244 // TODO: can actually just put single objects into pvs with same id, 245 // this can be sorted out later!! 246 #if 0 247 EntityContainer::const_iterator eit, eit_end = entryObjects.end(); 248 249 for (eit = entryObjects.begin(); eit != eit_end; ++ eit) 250 { 251 Entity *ent = *eit; 252 253 // warning: multiple ids possible 254 OgreMeshInstance *omi = new OgreMeshInstance(ent); 255 omi->SetId(id); 256 objects.push_back(omi); 257 } 258 259 delete entryObjects; 260 261 #else 262 263 EngineIntersectable *entry = new EngineIntersectable(entites); 264 265 entry->SetId(id); 266 objects.push_back(entry); 267 #endif 268 } 269 239 270 #if USE_KD_PVS 240 271 //------------------------------------------------------------------------- … … 255 286 OgreTypeConverter::ConvertToOgre(pbox); 256 287 257 EntityContainer entryObjects;288 EntityContainer *entryObjects = new EntityContainer(); 258 289 259 290 // find all objects that intersect the bounding box 260 FindIntersectingObjects(box, entryObjects); 261 262 // TODO: can actually just put single objects into pvs with same id, 263 // this can be sorted out later!! 264 #if 1 265 EntityContainer::const_iterator eit, eit_end = entryObjects.end(); 266 267 for (eit = entryObjects.begin(); eit != eit_end; ++ eit) 268 { 269 Entity *ent = *eit; 270 271 // warning: multiple ids possible 272 OgreMeshInstance *omi = new OgreMeshInstance(ent); 273 omi->SetId(id); 274 objects.push_back(omi); 275 } 276 #else 277 EngineIntersectable *entry = 278 new EngineIntersectable(entryObjects); 279 280 entry->SetId(id); 281 objects.push_back(entry); 282 #endif 291 FindIntersectingObjects(box, *entryObjects); 292 293 AddToObjects(entryObjects, objects, id); 283 294 } 284 295 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgreOcclusionCullingSceneManager.h
r2119 r2123 14 14 #include "ViewCellsManager.h" 15 15 16 17 namespace GtpVisibilityPreprocessor { 18 class Intersectable; 19 } 20 21 class ObjReader; 22 16 23 namespace Ogre { 17 24 … … 24 31 { 25 32 public: 26 OcclusionCullingSceneManager(const String& name, GtpVisibility::VisibilityManager *visManager); 33 OcclusionCullingSceneManager(const String& name, 34 GtpVisibility::VisibilityManager *visManager); 27 35 ~OcclusionCullingSceneManager(); 28 36 … … 70 78 */ 71 79 bool validatePassForRendering(Pass* pass); 80 72 81 #ifdef ITEM_BUFFER 73 82 void RenderItemBuffer(RenderPriorityGroup* pGroup); 74 83 void RenderSingleObjectForItemBuffer(Renderable *rend, Pass *pass); 75 84 #endif // ITEM_BUFFER 85 76 86 void _renderQueueGroupObjects(RenderQueueGroup* pGroup, 77 QueuedRenderableCollection::OrganisationMode om); 78 79 /** Override from SceneManager so that sub entities can be assigned an id for item buffer. 87 QueuedRenderableCollection::OrganisationMode om); 88 89 /** Override from SceneManager so that sub entities can be assigned 90 an id for item buffer. 80 91 */ 81 92 Entity* createEntity(const String& entityName, const String& meshName); … … 93 104 void endFrame(); 94 105 95 void renderAdditiveStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup, 96 QueuedRenderableCollection::OrganisationMode om); 97 void renderModulativeStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup, 98 QueuedRenderableCollection::OrganisationMode om); 106 void renderAdditiveStencilShadowedQueueGroupObjects( 107 RenderQueueGroup* pGroup, 108 QueuedRenderableCollection::OrganisationMode om); 109 void renderModulativeStencilShadowedQueueGroupObjects( 110 RenderQueueGroup* pGroup, 111 QueuedRenderableCollection::OrganisationMode om); 99 112 100 113 /** Override standard function so octree boxes are always of equal side length. … … 113 126 protected: 114 127 128 void MailPvsObjects(); 129 void RenderPvsEntry(GtpVisibilityPreprocessor::Intersectable *obj); 130 void SetObjectVisible(GtpVisibilityPreprocessor::Intersectable *entry, 131 const bool visible); 132 void ShowViewCellsGeometry(); 133 115 134 /** Creates material for depth pass, e.g., a pass that only fills the depth buffer. 116 135 */ … … 254 273 255 274 bool mShowTerrain; 275 276 ObjReader *mObjReader; 256 277 }; 257 278 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreBvHierarchySceneManager.cpp
r2115 r2123 1354 1354 while (pit.HasMoreEntries()) 1355 1355 { 1356 GtpVisibilityPreprocessor:: ObjectPvsEntryentry = pit.Next();1357 1358 if (entry .mObject)1359 { 1360 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry .mObject);1356 GtpVisibilityPreprocessor::Intersectable *entry = pit.Next(); 1357 1358 if (entry) 1359 { 1360 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry); 1361 1361 omi->GetEntity()->setVisible(load); 1362 1362 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTreeSceneManager.cpp
r2115 r2123 1355 1355 while (pit.HasMoreEntries()) 1356 1356 { 1357 GtpVisibilityPreprocessor:: ObjectPvsEntryentry = pit.Next();1358 1359 if (entry .mObject)1360 { 1361 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry .mObject);1357 GtpVisibilityPreprocessor::Intersectable *entry = pit.Next(); 1358 1359 if (entry) 1360 { 1361 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry); 1362 1362 omi->GetEntity()->setVisible(load); 1363 1363 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionCullingSceneManager.cpp
r2122 r2123 78 78 // TODO: set maxdepth to reasonable value 79 79 mMaxDepth = 50; 80 81 mObjReader = new ObjReader(this); 80 82 } 81 83 //----------------------------------------------------------------------- … … 107 109 CLEAR_CONTAINER(mObjects); 108 110 OGRE_DELETE(mCurrentViewCell); 111 112 OGRE_DELETE(mObjReader); 109 113 } 110 114 //----------------------------------------------------------------------- … … 379 383 selectPageSource(pageSourceName, optlist); 380 384 } 385 386 387 void OcclusionCullingSceneManager::MailPvsObjects() 388 { 389 GtpVisibilityPreprocessor::ObjectPvsIterator pit = 390 mCurrentViewCell->GetPvs().GetIterator(); 391 392 while (pit.HasMoreEntries()) 393 { 394 GtpVisibilityPreprocessor::Intersectable *obj = pit.Next(); 395 396 if (obj->Type() != 397 GtpVisibilityPreprocessor::Intersectable::ENGINE_INTERSECTABLE) 398 continue; 399 400 EngineIntersectable *oi = static_cast<EngineIntersectable *>(obj); 401 402 EntityContainer *entries = oi->GetItem(); 403 EntityContainer::const_iterator eit, eit_end = entries->end(); 404 405 for (eit = entries->begin(); eit != eit_end; ++ eit) 406 { 407 (*eit)->setUserAny(Any((int)0)); 408 } 409 } 410 } 411 //----------------------------------------------------------------------- 412 void OcclusionCullingSceneManager::ShowViewCellsGeometry() 413 {/* 414 // show only current view cell 415 if (!mShowViewCells) 416 { 417 const int id = mCurrentViewCell->GetId(); 418 419 MovableMap::iterator fit = mViewCellsGeometry.find(id); 420 421 if ((fit != mViewCellsGeometry.end()) && (*fit).second) 422 (*fit).second->_updateRenderQueue(getRenderQueue()); 423 } 424 else 425 { 426 MovableMap::const_iterator mit, mit_end = mViewCellsGeometry.end(); 427 428 for (mit = mViewCellsGeometry.begin(); mit != mit_end; ++ mit) 429 { 430 if ((*mit).second) 431 (*mit).second->_updateRenderQueue(getRenderQueue()); 432 } 433 }*/ 434 } 435 436 437 void OcclusionCullingSceneManager::RenderPvsEntry(GtpVisibilityPreprocessor::Intersectable *obj) 438 { 439 switch (obj->Type()) 440 { 441 case GtpVisibilityPreprocessor::Intersectable::OGRE_MESH_INSTANCE: 442 { 443 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(obj); 444 omi->GetEntity()->_updateRenderQueue(getRenderQueue()); 445 } 446 break; 447 448 case GtpVisibilityPreprocessor::Intersectable::ENGINE_INTERSECTABLE: 449 { 450 EngineIntersectable *oi = static_cast<EngineIntersectable *>(obj); 451 452 EntityContainer *entries = oi->GetItem(); 453 EntityContainer::const_iterator eit, eit_end = entries->end(); 454 455 for (eit = entries->begin(); eit != eit_end; ++ eit) 456 { 457 Entity *ent = *eit; 458 // mailing hack 459 Any newAny = ent->getUserAny(); 460 int flt = any_cast<int>(newAny); 461 462 if (any_cast<int>(newAny) == 0) 463 { 464 ent->setUserAny(Any((int)1)); 465 ent->_updateRenderQueue(getRenderQueue()); 466 } 467 } 468 } 469 break; 470 default: 471 break; 472 } 473 } 474 //----------------------------------------------------------------------- 475 void OcclusionCullingSceneManager::SetObjectVisible(GtpVisibilityPreprocessor::Intersectable *entry, 476 const bool visible) 477 { 478 switch (entry->Type()) 479 { 480 case GtpVisibilityPreprocessor::Intersectable::OGRE_MESH_INSTANCE: 481 { 482 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry); 483 omi->GetEntity()->setVisible(visible); 484 //GtpVisibilityPreprocessor::Debug << "assigned id " << omi->GetId() << endl; 485 } 486 break; 487 case GtpVisibilityPreprocessor::Intersectable::ENGINE_INTERSECTABLE: 488 { 489 EngineIntersectable *oi = static_cast<EngineIntersectable *>(entry); 490 491 EntityContainer *entries = oi->GetItem(); 492 EntityContainer::const_iterator eit, eit_end = entries->end(); 493 for (eit = entries->begin(); eit != eit_end; ++ eit) 494 { 495 Entity *ent = *eit; 496 ent->setVisible(visible); 497 } 498 } 499 break; 500 default: 501 break; 502 } 503 } 381 504 //----------------------------------------------------------------------- 382 505 void OcclusionCullingSceneManager::PrepareVisualization(Camera *cam) … … 404 527 405 528 // show current view cell geometry 406 if (mCurrentViewCell && mCurrentViewCell->GetMesh())407 { /*529 if (mCurrentViewCell)// && mCurrentViewCell->GetMesh()) 530 { 408 531 //const bool showSingleViewCell = true; 409 532 if (mViewCellsGeometryLoaded) 410 533 { 411 if (!mShowViewCells) 412 { 413 const int id = mCurrentViewCell->GetId(); 414 415 MovableMap::iterator fit = mViewCellsGeometry.find(id); 416 417 if ((fit != mViewCellsGeometry.end()) && (*fit).second) 418 (*fit).second->_updateRenderQueue(getRenderQueue()); 419 } 420 else 421 { 422 MovableMap::const_iterator mit, mit_end = mViewCellsGeometry.end(); 423 424 for (mit = mViewCellsGeometry.begin(); mit != mit_end; ++ mit) 425 { 426 if ((*mit).second) 427 (*mit).second->_updateRenderQueue(getRenderQueue()); 428 } 429 } 430 } 431 */ 534 ShowViewCellsGeometry(); 535 } 536 432 537 ////////// 433 538 //-- set PVS of view cell visible 434 539 435 GtpVisibilityPreprocessor::ObjectPvsIterator pit = mCurrentViewCell->GetPvs().GetIterator(); 540 GtpVisibilityPreprocessor::ObjectPvsIterator pit = 541 mCurrentViewCell->GetPvs().GetIterator(); 542 543 MailPvsObjects(); 436 544 437 545 while (pit.HasMoreEntries()) 438 { 439 GtpVisibilityPreprocessor::ObjectPvsEntry entry = pit.Next(); 440 GtpVisibilityPreprocessor::Intersectable *obj = entry.mObject; 441 442 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(obj); 443 omi->GetEntity()->_updateRenderQueue(getRenderQueue()); 444 } 445 446 } 447 /* 546 { 547 RenderPvsEntry(pit.Next()); 548 } 549 } 550 #if 0 448 551 if (mRenderNodesForViz || mRenderNodesContentForViz) 449 552 { … … 479 582 } 480 583 } 481 }*/ 584 } 585 #endif 482 586 } 483 587 //----------------------------------------------------------------------- … … 601 705 { 602 706 // $$matt temp: Remove this!! 603 if ( 1)707 if (0) 604 708 { 605 709 getDestinationRenderSystem()->_setCullingMode(CULL_NONE); 606 LogManager::getSingleton().logMessage("warning: culling mode");710 //LogManager::getSingleton().logMessage("warning: culling mode"); 607 711 } 608 712 … … 1367 1471 GtpVisibilityPreprocessor::Intersectable *entry = *it; 1368 1472 1369 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(entry); 1370 omi->GetEntity()->setVisible(visible); 1371 //GtpVisibilityPreprocessor::Debug << "assigned id " << omi->GetId() << endl; 1473 SetObjectVisible(entry, visible); 1372 1474 } 1373 1475 } … … 1421 1523 } 1422 1524 1423 GtpVisibilityPreprocessor::ObjectPvsIterator pit = vc->GetPvs().GetIterator();1424 1425 1525 //////////// 1426 1526 //-- set PVS of view cell to visible … … 1429 1529 //LogManager::getSingleton().logMessage(d.str()); 1430 1530 1531 GtpVisibilityPreprocessor::ObjectPvsIterator pit = vc->GetPvs().GetIterator(); 1532 1431 1533 while (pit.HasMoreEntries()) 1432 1534 { 1433 GtpVisibilityPreprocessor::ObjectPvsEntry entry = pit.Next(); 1434 GtpVisibilityPreprocessor::Intersectable *obj = entry.mObject; 1535 GtpVisibilityPreprocessor::Intersectable *obj = pit.Next(); 1435 1536 1436 1537 // no associated geometry found 1437 1538 if (!obj) continue; 1438 1539 1439 OgreMeshInstance *omi = static_cast<OgreMeshInstance *>(obj); 1440 omi->GetEntity()->setVisible(load); 1540 SetObjectVisible(obj, load); 1441 1541 } 1442 1542 } … … 1706 1806 SceneNode *root) 1707 1807 { 1708 ObjReader objReader(this);1709 1710 1808 Timer *timer = PlatformManager::getSingleton().createTimer(); 1711 1809 timer->reset(); 1712 1810 1713 if (! objReader.LoadFile(filename.c_str(), viewCellsFile, root))1811 if (!mObjReader->LoadFile(filename.c_str(), viewCellsFile, root)) 1714 1812 { 1715 1813 PlatformManager::getSingleton().destroyTimer(timer); -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/Plugin_VisibilitySceneManager.vcproj
r2122 r2123 20 20 Name="VCCLCompilerTool" 21 21 Optimization="0" 22 AdditionalIncludeDirectories=""$(OGRE_PATH)\PlugIns\OctreeSceneManager\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";..\include;..\..\..\OnlineCullingCHC\include;..\..\..\Preprocessing\src "22 AdditionalIncludeDirectories=""$(OGRE_PATH)\PlugIns\OctreeSceneManager\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";..\include;..\..\..\OnlineCullingCHC\include;..\..\..\Preprocessing\src;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\IVReader\include;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\ObjReader\include" 23 23 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PLUGIN_KD_TERRAIN_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE" 24 24 MinimalRebuild="TRUE" … … 36 36 Name="VCLinkerTool" 37 37 IgnoreImportLibrary="TRUE" 38 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib Plugin_OctreeSceneManager.lib GtpVisibility.lib zdll.lib zziplibd.lib Preprocessor.lib devil.lib glut32.lib xerces-c_2D.lib OpenGL32.Lib glu32.lib cg.lib cgGL.lib glew32.lib "38 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib Plugin_OctreeSceneManager.lib GtpVisibility.lib zdll.lib zziplibd.lib Preprocessor.lib devil.lib glut32.lib xerces-c_2D.lib OpenGL32.Lib glu32.lib cg.lib cgGL.lib glew32.lib IVReader.lib ObjReader.lib" 39 39 OutputFile="$(OutDir)/Plugin_VisibilitySceneManager.dll" 40 40 Version="0.99" 41 41 LinkIncremental="1" 42 42 SuppressStartupBanner="TRUE" 43 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)";"$(OGRE_PATH)\PlugIns\OctreeSceneManager\bin\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\..\..\Preprocessing\lib\$(ConfigurationName)";..\..\..\Preprocessing\src\GL;..\..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;"$(CG_LIB_PATH)" "43 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)";"$(OGRE_PATH)\PlugIns\OctreeSceneManager\bin\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\..\..\Preprocessing\lib\$(ConfigurationName)";..\..\..\Preprocessing\src\GL;..\..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;"$(CG_LIB_PATH)";"..\..\..\..\..\Lib\Vis\OnlineCullingCHC\ObjReader\lib\$(ConfigurationName)";"..\..\..\..\..\Lib\Vis\OnlineCullingCHC\IVReader\lib\$(ConfigurationName)"" 44 44 ModuleDefinitionFile="..\misc\OgreVisibilitySceneManager.def" 45 45 GenerateDebugInformation="TRUE" … … 87 87 OmitFramePointers="TRUE" 88 88 EnableFiberSafeOptimizations="TRUE" 89 OptimizeForProcessor=" 3"89 OptimizeForProcessor="0" 90 90 OptimizeForWindowsApplication="TRUE" 91 AdditionalIncludeDirectories=""$(OGRE_PATH)\PlugIns\OctreeSceneManager\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";..\include;..\..\..\OnlineCullingCHC\include;..\..\..\Preprocessing\src;..\..\..\ ..\..\Lib\Vis\OnlineCullingCHC\IVReader\include;..\..\..\Preprocessing\src\Timer;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\ObjReader\include"92 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PLUGIN_KD_TERRAIN_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE 1;USE_VERBOSE_PVS"91 AdditionalIncludeDirectories=""$(OGRE_PATH)\PlugIns\OctreeSceneManager\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";..\include;..\..\..\OnlineCullingCHC\include;..\..\..\Preprocessing\src;..\..\..\Preprocessing\src\Timer;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\IVReader\include;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\ObjReader\include" 92 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PLUGIN_KD_TERRAIN_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 93 93 StringPooling="TRUE" 94 94 RuntimeLibrary="2" -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/include/ObjManualMeshLoader.h
r2111 r2123 2 2 #define __ObjManualMeshLoader_H__ 3 3 4 #include "Ogre.h" 4 5 5 #include "Ogre.h" 6 #include "ObjMeshData.h" 7 6 namespace GtpVisibilityPreprocessor { 7 class BvhLeaf; 8 } 8 9 9 10 class __declspec(dllexport) ObjManualMeshLoader: public Ogre::ManualResourceLoader 10 11 { 11 public: 12 ObjManualMeshLoader(); 13 ObjManualMeshLoader(ObjMeshData *mData); 14 ~ObjManualMeshLoader(); 12 public: 13 ObjManualMeshLoader(GtpVisibilityPreprocessor::BvhLeaf *obj); 14 ~ObjManualMeshLoader(); 15 15 16 16 void loadResource(Ogre::Resource *resource); 17 17 18 Ogre::AxisAlignedBox *getBoundingBox(); 19 private: 20 ObjMeshData *data; 18 protected: 21 19 20 GtpVisibilityPreprocessor::BvhLeaf *mObject; 22 21 }; 23 22 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/include/ObjReader.h
r2122 r2123 7 7 #include "Containers.h" 8 8 9 namespace GtpVisibilityPreprocessor { 10 class Intersectable; 11 } 9 12 10 13 class __declspec(dllexport) ObjReader … … 14 17 ~ObjReader(); 15 18 16 bool LoadFile(const st ring &sceneName,17 const st ring &visibilitySolution,19 bool LoadFile(const std::string &sceneName, 20 const std::string &visibilitySolution, 18 21 Ogre::SceneNode *root); 19 22 void dummy(); 23 Ogre::Entity * dummy2(const std::string &name, 24 GtpVisibilityPreprocessor::Intersectable *object); 20 25 Ogre::Entity *CreateEntity(const std::string &name, 21 26 GtpVisibilityPreprocessor::Intersectable *object); … … 25 30 26 31 Ogre::SceneManager *mSceneManager; 32 GtpVisibilityPreprocessor::ObjectContainer mPvsObjects; 27 33 }; 28 34 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjManualMeshLoader.cpp
r2111 r2123 1 1 #include "ObjManualMeshLoader.h" 2 #include "ObjReader.h" 2 #include "Triangle3.h" 3 #include "IntersectableWrapper.h" 4 #include "BvHierarchy.h" 5 #include "OgreLogManager.h" 3 6 4 ObjManualMeshLoader::ObjManualMeshLoader() 5 { 6 data = NULL; 7 } 7 #define USE_HBL_DISCARD 1 8 8 9 10 ObjManualMeshLoader::ObjManualMeshLoader(ObjMeshData *mData): 11 data(mData) 9 ObjManualMeshLoader::ObjManualMeshLoader(GtpVisibilityPreprocessor::BvhLeaf *obj): 10 mObject(obj) 12 11 { 13 12 } … … 16 15 ObjManualMeshLoader::~ObjManualMeshLoader() 17 16 { 18 if (data != NULL)19 {20 data->collapse();21 delete data;22 }23 }24 25 26 Ogre::AxisAlignedBox *ObjManualMeshLoader::getBoundingBox()27 {28 return data->boundingBox;29 17 } 30 18 … … 33 21 { 34 22 using namespace Ogre; 35 Mesh *pMesh = (Mesh *) resource;36 23 24 Mesh *mesh = (Mesh *) resource; 25 SubMesh* submesh = mesh->createSubMesh(); 37 26 38 Vector3 translation = data->boundingBox->getCenter(); 27 const int triCount = (int)mObject->mObjects.size(); 28 const int vertexCount = triCount * 3; 39 29 40 bool nOk = ((data->normals != NULL) && (data->ncnt > 0)); 41 bool tOk = ((data->texCoords != NULL) && (data->tcnt > 0)); 42 43 pMesh->sharedVertexData = new VertexData(); 30 // We must create the vertex data, indicating how many vertices there will be 31 submesh->useSharedVertices = false; 32 submesh->vertexData = new VertexData(); 33 submesh->vertexData->vertexStart = 0; 34 submesh->vertexData->vertexCount = vertexCount; 44 35 45 VertexDeclaration* vertexDecl = pMesh->sharedVertexData->vertexDeclaration; 36 static const unsigned short source = 0; 37 size_t offset = 0; 46 38 47 size_t currOffset = 0; 48 vertexDecl->addElement(0, currOffset, VET_FLOAT3, VES_POSITION); 49 currOffset += VertexElement::getTypeSize(VET_FLOAT3); 50 if (nOk) 39 // We must now declare what the vertex data contains 40 VertexDeclaration* declaration = submesh->vertexData->vertexDeclaration; 41 42 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_POSITION).getSize(); 43 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_NORMAL).getSize(); 44 //offset += declaration->addElement(source, offset, VET_FLOAT2,VES_TEXTURE_COORDINATES).getSize(); 45 46 HardwareVertexBufferSharedPtr vbuffer = HardwareBufferManager::getSingleton(). 47 createVertexBuffer(declaration->getVertexSize(source), 48 submesh->vertexData->vertexCount, 49 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 50 51 // we get access to the buffer to fill it. During so we record the bounding box. 52 AxisAlignedBox aabox; 53 54 submesh->vertexData->vertexBufferBinding->setBinding(source, vbuffer); 55 #if USE_HBL_DISCARD 56 float* vdata = static_cast<float*>(vbuffer->lock(HardwareBuffer::HBL_DISCARD)); 57 #else 58 float* vdata = static_cast<float *>(vbuffer->lock(HardwareBuffer::HBL_NORMAL)); 59 #endif 60 61 GtpVisibilityPreprocessor::ObjectContainer:: 62 const_iterator oit, oit_end = mObject->mObjects.end(); 63 64 for (oit = mObject->mObjects.begin(); oit != oit_end; ++ oit) 51 65 { 52 vertexDecl->addElement(0, currOffset, VET_FLOAT3, VES_NORMAL); 53 currOffset += VertexElement::getTypeSize(VET_FLOAT3); 54 } 55 if (tOk) 56 { 57 vertexDecl->addElement(0, currOffset, VET_FLOAT2, VES_TEXTURE_COORDINATES); 58 currOffset += VertexElement::getTypeSize(VET_FLOAT2); 59 } 66 GtpVisibilityPreprocessor::TriangleIntersectable *tObj = 67 static_cast<GtpVisibilityPreprocessor::TriangleIntersectable *>(*oit); 68 69 const GtpVisibilityPreprocessor::Triangle3 tri = tObj->GetItem(); 70 const GtpVisibilityPreprocessor::Vector3 n = tri.GetNormal(); 60 71 61 pMesh->sharedVertexData->vertexCount = data->vcnt/3; 62 HardwareVertexBufferSharedPtr vbuf = 63 HardwareBufferManager::getSingleton(). 64 createVertexBuffer(vertexDecl->getVertexSize(0), pMesh->sharedVertexData->vertexCount, 65 HardwareBuffer::HBU_STATIC_WRITE_ONLY, false); 72 for (int i = 0; i < 3; ++ i) 73 { 74 Vector3 vtx(tri.mVertices[i].x, tri.mVertices[i].y, tri.mVertices[i].z); 75 76 *(vdata ++) = vtx.x; 77 *(vdata ++) = vtx.y; 78 *(vdata ++) = vtx.z; 66 79 67 VertexBufferBinding* binding = pMesh->sharedVertexData->vertexBufferBinding; 68 binding->setBinding(0, vbuf); 80 *(vdata ++) = n.x; 81 *(vdata ++) = n.y; 82 *(vdata ++) = n.z; 69 83 70 Real* pVertices = static_cast<Real*>(vbuf->lock(HardwareBuffer::HBL_DISCARD)); 71 72 int offset = 0, size = 3; 73 if (nOk) size += 3; 74 if (tOk) size += 2; 75 for (int i=0; i<data->vcnt/3; i++) 76 { 77 pVertices[i*size] = data->vertices[i*3] - translation.x; 78 pVertices[i*size+1] = data->vertices[i*3+1] - translation.y; 79 pVertices[i*size+2] = data->vertices[i*3+2] - translation.z; 80 81 offset = 3; 82 if (nOk) 83 { 84 pVertices[i*size+offset] = data->normals[i*3]; offset++; 85 pVertices[i*size+offset] = data->normals[i*3+1]; offset++; 86 pVertices[i*size+offset] = data->normals[i*3+2]; offset++; 87 } 88 if (tOk) 89 { 90 pVertices[i*size+offset] = data->texCoords[i*2]; offset++; 91 pVertices[i*size+offset] = -data->texCoords[i*2+1]; offset++; 84 aabox.merge(vtx); 92 85 } 93 86 } 94 87 95 vbuf->unlock(); 88 vbuffer->unlock(); 89 90 #if 0 91 RenderOperation rop; 92 submesh->_getRenderOperation(rop); 93 rop.useIndexes = false; 94 #endif 95 ////// 96 //-- Creates the index data 97 98 const int indexCount = vertexCount; 99 submesh->indexData->indexStart = 0; 100 submesh->operationType = RenderOperation::OT_TRIANGLE_LIST; 101 102 // we use an index for every vertex 103 submesh->indexData->indexCount = indexCount; 104 submesh->indexData->indexBuffer = 105 HardwareBufferManager::getSingleton(). 106 createIndexBuffer(HardwareIndexBuffer::IT_16BIT, 107 submesh->indexData->indexCount, 108 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 109 110 #if USE_HBL_DISCARD 111 uint16* idata = static_cast<uint16 *>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 112 #else 113 uint16* idata = static_cast<uint16 *>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_NORMAL)); 114 #endif 115 for (int j = 0; j < indexCount; ++ j) 116 { 117 idata[j] = j; 118 } 119 120 submesh->indexData->indexBuffer->unlock(); 121 submesh->setMaterialName("BaseWhite"); 122 123 // indicate the bounding box 124 mesh->_setBounds(aabox); 125 mesh->_setBoundingSphereRadius((aabox.getMaximum() - aabox.getMinimum()).length() / 2.0); 126 } 96 127 97 128 98 SubMesh *pSub = pMesh->createSubMesh();99 pSub->operationType = RenderOperation::OT_TRIANGLE_LIST; //;data->roType;100 pSub->useSharedVertices = true;101 129 102 pSub->indexData->indexCount = data->icnt;103 pSub->indexData->indexBuffer = HardwareBufferManager::getSingleton().104 createIndexBuffer(HardwareIndexBuffer::IT_16BIT,105 pSub->indexData->indexCount, HardwareBuffer::HBU_STATIC_WRITE_ONLY, false);106 107 HardwareIndexBufferSharedPtr ibuf = pSub->indexData->indexBuffer;108 unsigned short* pIndices = static_cast<unsigned short*>(ibuf->lock(HardwareBuffer::HBL_DISCARD));109 110 for (i = 0; i < data->icnt; i++) pIndices[i] = data->indices[i];111 112 ibuf->unlock();113 114 AxisAlignedBox bb(data->boundingBox->getMinimum() - translation, data->boundingBox->getMaximum() - translation);115 //AxisAlignedBox bb(data->boundingBox->getMinimum(), data->boundingBox->getMaximum());116 pMesh->_setBounds(bb);117 Real radius = data->boundingBox->getMinimum().length();118 if (data->boundingBox->getMaximum().length() > radius) radius = data->boundingBox->getMaximum().length();119 pMesh->_setBoundingSphereRadius(radius);120 121 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.cpp
r2122 r2123 8 8 #include "PreprocessorFactory.h" 9 9 #include "OgreLogManager.h" 10 #include "ObjManualMeshLoader.h" 10 11 11 12 … … 17 18 18 19 ObjReader::~ObjReader() 19 {} 20 { 21 CLEAR_CONTAINER(mPvsObjects); 22 } 20 23 21 24 … … 31 34 // hack 32 35 preprocessor->mLoadMeshes = false; 33 GtpVisibilityPreprocessor::ObjectContainer pvsObjects;34 36 35 Ogre::LogManager::getSingleton().logMessage("loading obj scene !!");37 Ogre::LogManager::getSingleton().logMessage("loading obj scene"); 36 38 37 39 if (preprocessor->LoadScene(sceneName)) … … 39 41 Ogre::LogManager::getSingleton().logMessage("scene loaded, loading objects"); 40 42 // form objects from the scene triangles 41 if (!preprocessor->LoadObjects(visibilitySolution, pvsObjects, preprocessor->mObjects))43 if (!preprocessor->LoadObjects(visibilitySolution, mPvsObjects, preprocessor->mObjects)) 42 44 { 43 45 Ogre::LogManager::getSingleton().logMessage("objects cannot be loaded"); … … 52 54 53 55 std::stringstream d; 54 d << "successfully loaded " << pvsObjects.size() << " objects from " << preprocessor->mObjects.size() << " preprocessor objects";56 d << "successfully loaded " << mPvsObjects.size() << " objects from " << preprocessor->mObjects.size() << " preprocessor objects"; 55 57 56 58 Ogre::LogManager::getSingleton().logMessage(d.str()); 57 59 58 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = pvsObjects.end();60 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = mPvsObjects.end(); 59 61 60 62 int i = 0; 61 for (oit = pvsObjects.begin(); oit != oit_end; ++ oit, ++ i)63 for (oit = mPvsObjects.begin(); oit != oit_end; ++ oit, ++ i) 62 64 { 63 Ogre::LogManager::getSingleton().logMessage("r"); 65 if (i % 5000 == 4999) 66 { 67 d << i << " objects created" << endl; 68 } 69 64 70 const Ogre::String entname = "Object" + Ogre::StringConverter::toString(i); 65 71 66 Ogre::ManualObject *ent = CreateEntity(entname, *oit); 72 #if 0 73 Ogre::ManualObject *ent = CreateManualObject(entname, *oit); 74 #else 75 Ogre::Entity *ent = CreateEntity(entname, *oit); 76 #endif 67 77 68 78 const Ogre::String nodeName = entname + "Node"; … … 70 80 node->attachObject(ent); 71 81 72 if (i > 100)73 82 // problems for too many objects (= vbo)? 83 //if (i > 30000)break; 74 84 } 75 85 … … 89 99 std::string entityName = name + "Entity"; 90 100 91 GtpVisibilityPreprocessor::BvhLeaf *bvhObj =101 GtpVisibilityPreprocessor::BvhLeaf *bvhObj = 92 102 static_cast<GtpVisibilityPreprocessor::BvhLeaf *>(object); 103 93 104 const int vertexCount = (int)bvhObj->mObjects.size() * 3; 94 105 95 106 ManualObject* manual = mSceneManager->createManualObject(entityName); 96 manual->begin("BaseWhite NoLighting", RenderOperation::OT_LINE_STRIP);107 manual->begin("BaseWhite", RenderOperation::OT_TRIANGLE_LIST); 97 108 109 const float red = GtpVisibilityPreprocessor::Random(1.0f); 110 const float green = GtpVisibilityPreprocessor::Random(1.0f); 111 const float blue = GtpVisibilityPreprocessor::Random(1.0f); 112 98 113 // create vertices 99 100 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit,oit_end = bvhObj->mObjects.end();114 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, 115 oit_end = bvhObj->mObjects.end(); 101 116 102 117 for (oit = bvhObj->mObjects.begin(); oit != oit_end; ++ oit) … … 110 125 { 111 126 const GtpVisibilityPreprocessor::Vector3 vtx = tri.mVertices[i]; 127 const GtpVisibilityPreprocessor::Vector3 n = tri.GetNormal(); 128 112 129 manual->position(vtx.x, vtx.y, vtx.z); 113 manual->colour(1.0f, 0.0f, 0.0f); 130 manual->normal(n.x, n.y, n.z); 131 //manual->colour(red, green, blue); 114 132 } 115 133 } 116 134 135 if (0) 117 136 for (int i = 0; i < vertexCount; ++ i) 118 137 { 119 138 manual->index(i); 120 139 } 140 141 manual->end(); 121 142 122 143 return manual; … … 137 158 std::string entityName = name + "Entity"; 138 159 139 MeshPtr mesh = MeshManager::getSingleton().createManual(meshName, "Custom"); 140 SubMesh* submesh = mesh->createSubMesh(); 160 ObjManualMeshLoader *loader = new ObjManualMeshLoader(bvhObj); 141 161 142 const int vertexCount = (int)bvhObj->mObjects.size() * 3; 143 144 // We must create the vertex data, indicating how many vertices there will be 145 submesh->useSharedVertices = false; 146 submesh->vertexData = new VertexData(); 147 submesh->vertexData->vertexStart = 0; 148 submesh->vertexData->vertexCount = vertexCount; 149 150 std::stringstream d; d << "objects: " << bvhObj->mObjects.size() << " vtx: " << submesh->vertexData->vertexCount << endl; 151 Ogre::LogManager::getSingleton().logMessage(d.str()); 152 153 static const unsigned short source = 0; 154 size_t offset = 0; 155 156 VertexDeclaration* declaration = HardwareBufferManager::getSingleton().createVertexDeclaration(); 157 158 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_POSITION).getSize(); 159 //offset += declaration->addElement(source, offset, VET_FLOAT3,VES_NORMAL).getSize(); 160 //offset += declaration->addElement(source, offset, VET_FLOAT2,VES_TEXTURE_COORDINATES).getSize(); 161 162 163 int numVertices = 0; 164 165 HardwareVertexBufferSharedPtr vbuffer = HardwareBufferManager::getSingleton(). 166 createVertexBuffer(declaration->getVertexSize(source), 167 submesh->vertexData->vertexCount, 168 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 169 170 // No we get access to the buffer to fill it. During so we record the bounding box. 171 AxisAlignedBox aabox; 172 173 float* vdata = static_cast<float*>(vbuffer->lock(HardwareBuffer::HBL_DISCARD)); 174 175 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = bvhObj->mObjects.end(); 176 177 for (oit = bvhObj->mObjects.begin(); oit != oit_end; ++ oit) 178 { 179 GtpVisibilityPreprocessor::TriangleIntersectable *tObj = 180 static_cast<GtpVisibilityPreprocessor::TriangleIntersectable *>(*oit); 181 182 GtpVisibilityPreprocessor::Triangle3 tri = tObj->GetItem(); 183 184 for (int i = 0; i < 3; ++ i) 185 { 186 Vector3 vtx = Vector3(tri.mVertices[i]); 187 188 *vdata ++ = vtx.x; 189 *vdata ++ = vtx.y; 190 *vdata ++ = vtx.z; 191 192 //std::stringstream d; d << vtx; 193 //Ogre::LogManager::getSingleton().logMessage(d.str()); 194 aabox.merge(vtx); 195 } 196 } 197 //Ogre::LogManager::getSingleton().logMessage("***"); 198 vbuffer->unlock(); 199 200 /*Ogre::RenderOperation rop; 201 submesh->_getRenderOperation(rop); 202 rop.useIndexes = false; 203 */ 204 ////// 205 //-- Creates the index data 206 207 submesh->vertexData->vertexBufferBinding->setBinding(source, vbuffer); 208 209 submesh->indexData->indexStart = 0; 210 // we use an index for every vertex 211 submesh->indexData->indexCount = vertexCount; 212 submesh->indexData->indexBuffer = 213 HardwareBufferManager::getSingleton(). 214 createIndexBuffer(HardwareIndexBuffer::IT_16BIT, 215 submesh->indexData->indexCount, 216 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 217 submesh->operationType = RenderOperation::OT_LINE_STRIP; 218 //uint16* idata = static_cast<uint16*>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 219 unsigned short* idata = static_cast<unsigned short*>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 220 221 for (int j = 0; j < vertexCount; ++ j) 222 { 223 *idata = j; 224 ++ idata; 225 } 226 227 submesh->indexData->indexBuffer->unlock(); 228 229 submesh->setMaterialName("BaseWhiteNoLighting"); 230 231 // We must indicate the bounding box 232 mesh->_setBounds(aabox); 233 mesh->_setBoundingSphereRadius((aabox.getMaximum() - aabox.getMinimum()).length() / 2.0); 234 mesh->load(); 235 mesh->touch(); 162 Mesh* pMesh = MeshManager::getSingleton().createManual(meshName, "ObjGroup", loader).getPointer(); 163 pMesh->load(); 236 164 237 165 // Create an entity with the mesh 238 166 entity = mSceneManager->createEntity(entityName, meshName); 239 167 240 //entity->setRenderQueueGroup(Ogre::RENDER_QUEUE_MAIN); 168 return entity; 169 } 241 170 242 return entity;243 #endif244 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj
r2122 r2123 20 20 Name="VCCLCompilerTool" 21 21 Optimization="0" 22 AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include "22 AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include;..\..\..\Preprocessing\src" 23 23 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE" 24 24 MinimalRebuild="TRUE" 25 25 BasicRuntimeChecks="3" 26 RuntimeLibrary=" 1"27 UsePrecompiledHeader="0" 28 WarningLevel="3" 29 Detect64BitPortabilityProblems="TRUE" 30 DebugInformationFormat="3"/> 31 <Tool 32 Name="VCCustomBuildTool"/> 33 <Tool 34 Name="VCLinkerTool" 35 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib "36 OutputFile="$(OutDir)/ObjReader.dll" 37 LinkIncremental="1" 38 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\..\GtpVisibility\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)" "26 RuntimeLibrary="3" 27 UsePrecompiledHeader="0" 28 WarningLevel="3" 29 Detect64BitPortabilityProblems="TRUE" 30 DebugInformationFormat="3"/> 31 <Tool 32 Name="VCCustomBuildTool"/> 33 <Tool 34 Name="VCLinkerTool" 35 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib Preprocessor.lib xerces-c_2.lib zdll.lib zziplibd.lib" 36 OutputFile="$(OutDir)/ObjReader.dll" 37 LinkIncremental="1" 38 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\..\GtpVisibility\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)";"..\..\..\Preprocessing\lib\$(ConfigurationName)";..\..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib" 39 39 GenerateDebugInformation="TRUE" 40 40 ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb" … … 73 73 Name="VCCLCompilerTool" 74 74 AdditionalIncludeDirectories=""$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include;..\..\..\Preprocessing\src" 75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE 1;USE_VERBOSE_PVS"75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 76 76 RuntimeLibrary="2" 77 77 UsePrecompiledHeader="0" … … 339 339 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> 340 340 <File 341 RelativePath=".\ObjManualMeshLoader.cpp"> 342 </File> 343 <File 341 344 RelativePath="..\src\ObjReader.cpp"> 342 345 </File> 343 <Filter 344 Name="Header Files" 345 Filter="h;hpp;hxx;hm;inl;inc;xsd" 346 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> 347 <File 348 RelativePath="..\include\ObjReader.h"> 349 </File> 350 </Filter> 346 </Filter> 347 <Filter 348 Name="Header Files" 349 Filter="h;hpp;hxx;hm;inl;inc;xsd" 350 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> 351 <File 352 RelativePath="..\include\ObjManualMeshLoader.h"> 353 </File> 354 <File 355 RelativePath="..\include\ObjReader.h"> 356 </File> 351 357 </Filter> 352 358 </Files>
Note: See TracChangeset
for help on using the changeset viewer.