Ignore:
Timestamp:
07/06/05 17:52:44 (19 years ago)
Author:
mattausch
Message:

added flags for switching on/off transparents for item buffer and vertex programs for depth pass / item buffer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/include/OgreVisibilityOctreeSceneManager.h

    r139 r159  
    1717        occlusion queries for visibility culling. 
    1818*/ 
    19 class VisibilityOctreeSceneManager: public OctreeSceneManager 
     19class __declspec(dllexport) VisibilityOctreeSceneManager: public OctreeSceneManager 
    2020{ 
    2121public: 
     
    5959        void WriteLog(); 
    6060 
    61         /** Override pass so we can do the z-fail pass */ 
     61        /** Override pass so we can do the z-fail pass.  
     62        */ 
    6263        Pass* setPass(Pass* pass); 
    6364 
     65        /** Override from SceneManager so we can skip all but first pass for depth pass.  
     66        */ 
     67        bool validatePassForRendering(Pass* pass); 
     68 
     69        void RenderItemBuffer(RenderPriorityGroup* pGroup); 
     70        void RenderSingleObjectForItemBuffer(Renderable *rend, Pass *pass); 
     71        void renderQueueGroupObjects(RenderQueueGroup* pGroup); 
     72 
     73        /** Override from SceneManager so that sub entities can be assigned an id for item buffer. 
     74        */ 
     75        //Entity* createEntity(const String& entityName, const String& meshName); 
     76 
     77        /** Returns pointer to visibility manager. 
     78        */ 
     79        GtpVisibility::VisibilityManager *GetVisibilityManager(); 
     80 
     81        /** Returns hierarchy interface. 
     82        */ 
     83        OctreeHierarchyInterface *GetHierarchyInterface(); 
     84 
     85 
    6486protected: 
    65         /** Creates material for depth pass, e.g., a pass that only fills the depth buffer */ 
     87         
     88        /** Creates material for depth pass, e.g., a pass that only fills the depth buffer.  
     89        */ 
    6690        void InitDepthPass(); 
     91        /** Creates material for item buffer.  
     92        */ 
     93        void InitItemBufferPass(); 
     94        /** Fills render queue so that a visualization can be rendered.  
     95        */ 
     96        void PrepareVisualization(Camera *cam); 
     97        /** Initialises necessary parameters for hierarchical visibility culling. 
     98        */ 
     99        void InitVisibilityCulling(Camera *cam); 
    67100         
    68         /** Prepares visualization of hierarchical culling. */ 
    69         void PrepareVisualization(Camera *cam); 
     101        /// the interface to the scene hierarchy. 
    70102        OctreeHierarchyInterface *mHierarchyInterface; 
     103        /// manages all visibility options 
    71104        GtpVisibility::VisibilityManager *mVisibilityManager; 
    72105         
     106        /// if a visualization of the hierarchical culling is shown 
    73107        bool mShowVisualization; 
    74         bool mSkipTransparents; 
     108 
     109        /// if the culled nodes are indicated in the visualization 
    75110        bool mVisualizeCulledNodes; 
    76111 
     112        /// if symbols for the nodes are shown in the visualization 
    77113        bool mRenderNodesForViz; 
     114        /// if content of the nodes is shown in the visualization 
    78115        bool mRenderNodesContentForViz; 
     116 
     117        /// render transparents after the hierarchical traversal 
    79118        bool mDelayRenderTransparents; 
     119 
     120        /// use a depth pass (i.e., fill only the depth buffer in the first pass) 
    80121        bool mUseDepthPass; 
     122        /// flag indicating if we currently render the depth pass 
    81123        bool mRenderDepthPass; 
    82124 
     125        /// if we use an item buffer for rendering (i.e., object ids as color codes 
     126        bool mUseItemBuffer; 
     127        /// if we currently render the item buffer  
     128        bool mRenderItemBuffer; 
     129 
     130        /// if depth write should be enabled 
     131        bool mEnableDepthWrite; 
     132        /// if transparents are skipped during rendering 
     133        bool mSkipTransparents; 
     134 
     135        /// the depth pass (no lighting, just filling the depth buffer) 
    83136        Pass *mDepthPass; 
     137        Pass *mItemBufferPass; 
     138 
     139        int mCurrentEntityId; 
     140        /// flag for passes which should not be deleted from queue during first traversal 
     141        int mLeavePassesInQueue; 
     142        ShadowTechnique mSavedShadowTechnique; 
     143 
     144        /// if transparent object are considered for item buffer visibility 
     145        bool mRenderTransparentsForItemBuffer; 
     146        /// Always execute the vertex program of a pass, e.g., for the depth pass or item buffer 
     147        bool mExecuteVertexProgramForAllPasses; 
    84148}; 
    85149 
Note: See TracChangeset for help on using the changeset viewer.