Ignore:
Timestamp:
04/27/06 09:24:44 (18 years ago)
Author:
szirmay
Message:
 
Location:
GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreIlluminationManager.h

    r790 r836  
    3838        */ 
    3939        void fillVisibleList(  RenderQueue * rq); 
    40  
     40        /** 
     41                @brief creates a specific type of RenderTechnique for a Renderable's pass. 
     42 
     43                It searches all registered RenderTechniqueFactories. 
     44        */ 
     45        void createTechnique(IllumTechniqueParams* params, Pass* pass, OgreRenderable* rend, OgreSharedRuns* sRuns); 
     46        /** 
     47                @brief A helper function to find the renderable object attached to a particle system (ONLY BILLBOARDSETS ARE SUPPORTED). 
     48 
     49                @param system pointer to the ParticleSystem instance to search in 
     50                @return pointer the connected BillboardSet instance 
     51        */ 
     52        BillboardSet* findRenderableInParticleSystem(ParticleSystem* system); 
     53 
     54        /** 
     55                @brief registered RenderTechniqueFactories 
     56        */ 
     57        std::list<RenderTechniqueFactory*> techniqueFactories; 
    4158        /** 
    4259                @brief The maximum bounding sphere radius that groupped objects ( see SharedRuns class ) can have 
     
    93110 
    94111        /** 
     112                @brief registers a RenderTechniqueFactory 
     113        */ 
     114        void addRenderTechniqueFactory(RenderTechniqueFactory* factory) 
     115        { 
     116                techniqueFactories.push_back(factory); 
     117        } 
     118        /** 
    95119                @brief retirieves the maximum bounding sphere radius with two SharedRuns can be joined. 
    96120        */ 
     
    114138        */ 
    115139        void update(unsigned long frameNumber, RenderTarget* rt); 
     140        /** 
     141                @brief searches for RenderTechniques in materials and creates them. 
     142        */ 
     143        void initTechniques(); 
    116144        /** 
    117145                @brief Returns a pointer to the player camera. 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreRenderTechnique.h

    r790 r836  
    4242                Pass* pass;              
    4343}; 
     44 
     45/** 
     46        @brief Base abstract class for creating RenderTechnique instances. 
     47*/ 
     48class RenderTechniqueFactory 
     49{ 
     50protected: 
     51         
     52        /** 
     53                @brief function for parsing RenderTechnique attributes 
     54 
     55                @param params attribute value stored in a String 
     56        */ 
     57        typedef void (*ILLUM_ATTRIBUTE_PARSER)(String& params, RenderTechniqueFactory* factory); 
     58        /** 
     59                @brief Keyword-mapped attribute parsers. 
     60        */ 
     61        typedef std::map<String, ILLUM_ATTRIBUTE_PARSER> AttribParserList; 
     62         
     63        /** 
     64                @brief map of parser functions 
     65        */ 
     66        AttribParserList attributeParsers; 
     67        /** 
     68                @brief factoryname 
     69        */ 
     70        String typeName; 
     71 
     72public:  
     73        /** 
     74                @brief Returns if this factory can create a RenderTechnique of the given type. 
     75 
     76                @param type RenderTechnique type 
     77        */ 
     78        bool isType(String type) 
     79        { 
     80                return typeName == type; 
     81        } 
     82         
     83        /** 
     84                @brief Creates a RenderTechnique of the factory type. 
     85 
     86                @param params containes constructor parameters as NameValuePairList 
     87                @param pass the Pass to use in RenderTechnique constructor 
     88                @param pass the parentRenderable to pass to RenderTechnique constructor 
     89                @param pass the parentTechniqueGroup to pass to RenderTechnique constructor 
     90        */ 
     91        virtual OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     92                                                                                Pass* pass, 
     93                                                                                OgreRenderable* parentRenderable, 
     94                                                                                OgreTechniqueGroup* parentTechniqueGroup) = 0; 
     95 
     96        virtual void parseParams(IllumTechniqueParams* params); 
     97         
     98         
     99}; 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCausticCasterRenderTechnique.h

    r790 r836  
    8686        virtual RenderingRun* createDistanceCubeMapRun(); 
    8787}; 
     88 
     89 
     90class OgreCausticCasterRenderTechniqueFactory : public RenderTechniqueFactory 
     91{ 
     92public: 
     93         
     94        OgreCausticCasterRenderTechniqueFactory(); 
     95 
     96        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     97                                                                                Pass* pass, 
     98                                                                                OgreRenderable* parentRenderable, 
     99                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     100 
     101 
     102        unsigned long startFrame; 
     103        unsigned long photonMapUpdateInterval; 
     104        unsigned int photonMapResolution; 
     105        unsigned int causticCubeMapResolution; 
     106        String photonMapMaterialName; 
     107        String causticMapMaterialName; 
     108        unsigned char photonMapTexID; 
     109        bool updateAllFace; 
     110        bool useDistance; 
     111         
     112 
     113}; 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCausticRecieverRenderTechnique.h

    r790 r836  
    8383         
    8484}; 
     85 
     86class OgreCausticRecieverRenderTechniqueFactory : public RenderTechniqueFactory 
     87{ 
     88public: 
     89         
     90        OgreCausticRecieverRenderTechniqueFactory(); 
     91 
     92        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     93                                                                                Pass* pass, 
     94                                                                                OgreRenderable* parentRenderable, 
     95                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     96 
     97 
     98        int maxcasters; 
     99        String causticVertexProgram; 
     100        String causticFragmentProgram; 
     101 
     102}; 
     103 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreConvolvedCubeMapRenderTechnique.h

    r790 r836  
    7777         
    7878}; 
     79 
     80 
     81 
     82class OgreConvoledCubeMapRenderTechniqueFactory : public RenderTechniqueFactory 
     83{ 
     84public: 
     85         
     86        OgreConvoledCubeMapRenderTechniqueFactory(); 
     87 
     88        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     89                                                                                Pass* pass, 
     90                                                                                OgreRenderable* parentRenderable, 
     91                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     92 
     93 
     94        unsigned long startFrame; 
     95        unsigned long cubeMapUpdateInterval; 
     96        unsigned int cubeMapResolution;                                                                                          
     97        unsigned int reducedCubeMapResolution; 
     98        unsigned char texID; 
     99        bool useDistCalc; 
     100        bool useFaceAngleCalc; 
     101        float distTolerance; 
     102        float angleTolerance; 
     103        bool updateAllFace; 
     104 
     105}; 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCubeMapRenderTechnique.h

    r790 r836  
    7373         
    7474}; 
     75 
     76class OgreColorCubeMapRenderTechniqueFactory : public RenderTechniqueFactory 
     77{ 
     78public: 
     79         
     80        OgreColorCubeMapRenderTechniqueFactory(); 
     81 
     82        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     83                                                                                Pass* pass, 
     84                                                                                OgreRenderable* parentRenderable, 
     85                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     86 
     87 
     88        unsigned long startFrame; 
     89        unsigned long cubeMapUpdateInterval; 
     90        unsigned int cubeMapResolution;                                                                                          
     91        unsigned char texID; 
     92        bool useDistCalc; 
     93        bool useFaceAngleCalc; 
     94        float distTolerance; 
     95        float angleTolerance; 
     96        bool updateAllFace; 
     97 
     98}; 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreDepthShadowRecieverRenderTechnique.h

    r790 r836  
    8181        std::vector<Pass*> passes;       
    8282}; 
     83 
     84 
     85class OgreDepthShadowRecieverRenderTechniqueFactory : public RenderTechniqueFactory 
     86{ 
     87public: 
     88         
     89        OgreDepthShadowRecieverRenderTechniqueFactory(); 
     90 
     91        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     92                                                                                Pass* pass, 
     93                                                                                OgreRenderable* parentRenderable, 
     94                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     95 
     96 
     97        int maxlights; 
     98        String shadowVertexProgram; 
     99        String shadowFragmentProgram; 
     100 
     101}; 
     102 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreDistanceCubeMapRenderTechnique.h

    r790 r836  
    7474         
    7575}; 
     76 
     77 
     78class OgreDistanceCubeMapRenderTechniqueFactory : public RenderTechniqueFactory 
     79{ 
     80public: 
     81         
     82        OgreDistanceCubeMapRenderTechniqueFactory(); 
     83 
     84        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     85                                                                                Pass* pass, 
     86                                                                                OgreRenderable* parentRenderable, 
     87                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     88 
     89 
     90        unsigned long startFrame; 
     91        unsigned long cubeMapUpdateInterval; 
     92        unsigned int cubeMapResolution;                                                                                          
     93        unsigned char texID; 
     94        bool useDistCalc; 
     95        bool useFaceAngleCalc; 
     96        float distTolerance; 
     97        float angleTolerance; 
     98        bool updateAllFace; 
     99 
     100}; 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreSBBRenderTechnique.h

    r790 r836  
    4747         
    4848}; 
     49 
     50 
     51class OgreSBBRenderTechniqueFactory : public RenderTechniqueFactory 
     52{ 
     53public: 
     54         
     55        OgreSBBRenderTechniqueFactory(); 
     56 
     57        OgreRenderTechnique* createInstance(IllumTechniqueParams* params, 
     58                                                                                Pass* pass, 
     59                                                                                OgreRenderable* parentRenderable, 
     60                                                                                OgreTechniqueGroup* parentTechniqueGroup); 
     61 
     62 
     63        unsigned char depthTexID; 
     64 
     65}; 
     66 
     67 
Note: See TracChangeset for help on using the changeset viewer.