- Timestamp:
- 08/08/06 18:25:06 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTreeSceneManager.cpp
r1185 r1187 61 61 62 62 // test 63 //String chc = "CHC";64 //setOption("RenderMethod", &chc);63 String chc = "CHC"; 64 setOption("RenderMethod", &chc); 65 65 } 66 66 … … 557 557 getRenderQueue()->clear(); 558 558 if (mKdTree) 559 mKdTree->queueVisibleObjects(cam, getRenderQueue(), onlyShadowCasters, m RenderMethod, mShowBoxes);559 mKdTree->queueVisibleObjects(cam, getRenderQueue(), onlyShadowCasters, mShowBoxes); 560 560 } 561 561 else … … 578 578 getRenderQueue()->clear(); 579 579 if (mKdTree) 580 mKdTree->queueVisibleObjects(cam, getRenderQueue(), onlyShadowCasters, m RenderMethod, mShowBoxes);580 mKdTree->queueVisibleObjects(cam, getRenderQueue(), onlyShadowCasters, mShowBoxes); 581 581 } 582 582 … … 697 697 if (mUseDepthPass) 698 698 { 699 KdRenderableList::const_iterator it, it_end = mVisibleNodes.end(); 700 701 //getRenderQueue()->clear(); 702 for (it = mVisibleNodes.begin(); it != it_end; ++ it) 699 //KdRenderableList::const_iterator it, it_end = mVisibleNodes.end(); 700 701 ////getRenderQueue()->clear(); 702 //for (it = mVisibleNodes.begin(); it != it_end; ++ it) 703 //{ 704 // (*it)->queueObjects(mCameraInProgress, getRenderQueue(), false); 705 //} 706 KdTree::NodeList::const_iterator it, end = mVisibleNodes.end(); 707 for (it = mVisibleNodes.begin(); it != end; it++) 703 708 { 704 (*it)->queueObjects(mCameraInProgress, getRenderQueue(), false); 709 (*it)->queueVisibleObjects(mHierarchyInterface->GetFrameId(), mCameraInProgress, 710 getRenderQueue(), false, mShowBoxes); 705 711 } 706 712 } 707 #endif 713 #endif 708 714 //-- now we can render all remaining queue objects 709 715 //-- used for depth pass, transparents, overlay … … 724 730 } 725 731 726 void KdTreeSceneManager::_renderNodes(const KdRenderableList& nodelist, Camera * cam, 727 bool onlyShadowCasters, int leavePassesInQueue) 728 { 729 #ifdef GTP_VISIBILITY_MODIFIED_OGRE 732 //void KdTreeSceneManager::_renderNodes(const KdRenderableList& nodelist, Camera * cam, 733 // bool onlyShadowCasters, int leavePassesInQueue) 734 void KdTreeSceneManager::_renderNode(KdTree::NodePtr node, Camera * cam, 735 bool onlyShadowCasters, int leavePassesInQueue) 736 { 730 737 RenderQueueGroup *currentGroup = 731 738 getRenderQueue()->getQueueGroup(getRenderQueue()->getDefaultQueueGroup()); 732 739 currentGroup->clear(leavePassesInQueue); 733 #else 734 getRenderQueue()->clear(); 735 #endif 736 KdRenderableList::const_iterator it = nodelist.begin(); 737 KdRenderableList::const_iterator end = nodelist.end(); 738 while (it != end) 739 { 740 if (!(*it)->isQueued(mHierarchyInterface->GetFrameId(), cam)) 741 { 742 mVisibleNodes.push_back(*it); 743 (*it)->queueObjects(cam, getRenderQueue(), onlyShadowCasters); 744 } 745 it++; 746 } 740 741 node->queueVisibleObjects(mHierarchyInterface->GetFrameId(), cam, getRenderQueue(), 742 onlyShadowCasters, mShowBoxes); 743 mVisibleNodes.push_back(node); 744 745 //KdRenderableList::const_iterator it = nodelist.begin(); 746 //KdRenderableList::const_iterator end = nodelist.end(); 747 //while (it != end) 748 //{ 749 // if (!(*it)->isQueued(mHierarchyInterface->GetFrameId(), cam)) 750 // { 751 // mVisibleNodes.push_back(*it); 752 // (*it)->queueObjects(cam, getRenderQueue(), onlyShadowCasters); 753 // } 754 // it++; 755 //} 747 756 748 757 _renderQueueGroupObjects(currentGroup, QueuedRenderableCollection::OM_PASS_GROUP); … … 957 966 nodeMat->getTechnique(0)->getPass(0)->removeAllTextureUnitStates(); 958 967 959 for (Kd RenderableList::iterator it = mVisibleNodes.begin(); it != mVisibleNodes.end(); ++it)968 for (KdTree::NodeList::iterator it = mVisibleNodes.begin(); it != mVisibleNodes.end(); ++it) 960 969 { 961 970 if (mRenderNodesForViz) 962 971 { 963 KdTreeSceneNode * node = static_cast<KdTreeSceneNode *>(*it); 964 // render the leaf nodes 965 if (node->numAttachedObjects() && 966 !node->numChildren() && 967 (node->getAttachedObject(0)->getMovableType() == "Entity") && 968 node->getAttachedObject(0)->isVisible()) 969 { 970 getRenderQueue()->addRenderable(node); 971 } 972 //KdTreeSceneNode * node = static_cast<KdTreeSceneNode *>(*it); 973 //// render the leaf nodes 974 //if (node->numAttachedObjects() && 975 // !node->numChildren() && 976 // (node->getAttachedObject(0)->getMovableType() == "Entity") && 977 // node->getAttachedObject(0)->isVisible()) 978 //{ 979 // //getRenderQueue()->addRenderable(node); 980 // node->_addBoundingBoxToQueue(getRenderQueue()); 981 //} 982 983 /*** TODO: fix this ... maybe revert to original state, not quite happy now! ***/ 972 984 973 985 // addbounding boxes instead of node itself … … 977 989 if (mRenderNodesContentForViz) 978 990 { 979 (*it)->queueObjects(cam, getRenderQueue(), false); 991 //(*it)->queueObjects(cam, getRenderQueue(), false); 992 (*it)->queueVisibleObjects(mHierarchyInterface->GetFrameId(), 993 cam, getRenderQueue(), false, mShowBoxes); 980 994 } 981 995 }
Note: See TracChangeset
for help on using the changeset viewer.