- Timestamp:
- 09/21/06 08:49:20 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreRenderingRun.cpp
r1351 r1425 29 29 } 30 30 bool visit(const Pass* p){return true;} 31 void visit(const RenderablePass* rp){} 31 void visit(const RenderablePass* rp) 32 { 33 Renderable* rend = rp->renderable; 34 35 if( visibleObjects->count(rend) == 0) 36 { 37 (*visibleObjects)[rend] = rend->getMaterial().getPointer()->getName(); 38 rend->setMaterialName(materialName); 39 } 40 } 32 41 33 42 }; … … 107 116 } 108 117 109 void OgreRenderingRun::setMaterialForRenderables(String& materialName, RenderQueue* rq )118 void OgreRenderingRun::setMaterialForRenderables(String& materialName, RenderQueue* rq, bool solidsonly) 110 119 { 111 120 RenderQueue::QueueGroupIterator queueIt = rq->_getQueueGroupIterator(); … … 124 133 MaterialSetVisitor visitor(materialName, &visibleObjects); 125 134 solids.acceptVisitor(&visitor, QueuedRenderableCollection::OM_PASS_GROUP); 126 transparents.acceptVisitor(&visitor, QueuedRenderableCollection::OM_SORT_ASCENDING); 135 if(!solidsonly) 136 transparents.acceptVisitor(&visitor, QueuedRenderableCollection::OM_SORT_ASCENDING); 127 137 } 128 138 } … … 144 154 } 145 155 146 void OgreRenderingRun::setMaterialForVisibles(String& materialName, Camera* cam, bool shadowcastersonly )156 void OgreRenderingRun::setMaterialForVisibles(String& materialName, Camera* cam, bool shadowcastersonly, bool solidsonly) 147 157 { 148 158 SceneManager* sm = Ogre::Root::getSingleton()._getCurrentSceneManager(); … … 160 170 sm->_findVisibleObjects (cam, shadowcastersonly); 161 171 162 setMaterialForRenderables(materialName, rq );172 setMaterialForRenderables(materialName, rq, solidsonly); 163 173 } 164 174
Note: See TracChangeset
for help on using the changeset viewer.