Changeset 1185 for GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src
- Timestamp:
- 08/07/06 16:12:39 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTreeSceneManager.cpp
r1183 r1185 41 41 mLeavePassesInQueue(0), 42 42 mDelayRenderTransparents(true), 43 mUseDepthPass( false),43 mUseDepthPass(true), 44 44 mIsDepthPassPhase(false), 45 45 mUseItemBuffer(false), … … 589 589 } 590 590 } 591 592 mVisibleNodes.clear(); 591 593 } 592 594 … … 695 697 if (mUseDepthPass) 696 698 { 697 //NodeList::const_iterator it, it_end = mVisible.end();698 699 // //getRenderQueue()->clear();700 //for (it = mVisible.begin(); it != it_end; ++ it)701 //{702 // (*it)->_addToRenderQueue(mCameraInProgress, getRenderQueue(), false);703 //}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 } 704 706 } 705 707 #endif … … 722 724 } 723 725 724 // TODO: looks too easy, verify if it works725 726 void KdTreeSceneManager::_renderNodes(const KdRenderableList& nodelist, Camera * cam, 726 727 bool onlyShadowCasters, int leavePassesInQueue) 727 728 { 728 729 #ifdef GTP_VISIBILITY_MODIFIED_OGRE 729 _deleteRenderedQueueGroups(leavePassesInQueue); //try avoiding modified ogre code 730 RenderQueueGroup *currentGroup = 731 getRenderQueue()->getQueueGroup(getRenderQueue()->getDefaultQueueGroup()); 732 currentGroup->clear(leavePassesInQueue); 730 733 #else 731 734 getRenderQueue()->clear(); … … 737 740 if (!(*it)->isQueued(mHierarchyInterface->GetFrameId(), cam)) 738 741 { 742 mVisibleNodes.push_back(*it); 739 743 (*it)->queueObjects(cam, getRenderQueue(), onlyShadowCasters); 740 744 } … … 742 746 } 743 747 744 SceneManager::_renderVisibleObjects(); 745 748 _renderQueueGroupObjects(currentGroup, QueuedRenderableCollection::OM_PASS_GROUP); 746 749 } 747 750 //----------------------------------------------------------------------- … … 946 949 //} 947 950 948 if (mRenderNodesForViz || mRenderNodesContentForViz) 949 { 950 // HACK: change node material so it is better suited for visualization 951 MaterialPtr nodeMat = MaterialManager::getSingleton().getByName("Core/NodeMaterial"); 952 nodeMat->setAmbient(1, 1, 0); 953 nodeMat->setLightingEnabled(true); 954 nodeMat->getTechnique(0)->getPass(0)->removeAllTextureUnitStates(); 955 956 //for (NodeList::iterator it = mVisible.begin(); it != mVisible.end(); ++it) 957 //{ 958 // if (mRenderNodesForViz) 959 // { 960 // // render the leaf nodes 961 // if ((*it)->numAttachedObjects() && 962 // !(*it)->numChildren() && 963 // ((*it)->getAttachedObject(0)->getMovableType() == "Entity") && 964 // (*it)->getAttachedObject(0)->isVisible()) 965 // { 966 // getRenderQueue()->addRenderable((*it)); 967 // } 968 969 // // addbounding boxes instead of node itself 970 // //(*it)->_addBoundingBoxToQueue(getRenderQueue()); 971 // } 972 // // add renderables itself 973 // if (mRenderNodesContentForViz) 974 // { 975 // (*it)->_addToRenderQueue(cam, getRenderQueue(), false); 976 // } 977 //} 978 } 951 if (mRenderNodesForViz || mRenderNodesContentForViz) 952 { 953 // HACK: change node material so it is better suited for visualization 954 MaterialPtr nodeMat = MaterialManager::getSingleton().getByName("Core/NodeMaterial"); 955 nodeMat->setAmbient(1, 1, 0); 956 nodeMat->setLightingEnabled(true); 957 nodeMat->getTechnique(0)->getPass(0)->removeAllTextureUnitStates(); 958 959 for (KdRenderableList::iterator it = mVisibleNodes.begin(); it != mVisibleNodes.end(); ++it) 960 { 961 if (mRenderNodesForViz) 962 { 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 973 // addbounding boxes instead of node itself 974 //(*it)->_addBoundingBoxToQueue(getRenderQueue()); 975 } 976 // add renderables itself 977 if (mRenderNodesContentForViz) 978 { 979 (*it)->queueObjects(cam, getRenderQueue(), false); 980 } 981 } 982 } 979 983 } 980 984 //-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.