source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgrePathMapRenderTechnique.h @ 2320

Revision 2320, 2.3 KB checked in by szirmay, 17 years ago (diff)
Line 
1#pragma once
2
3//disable inheritance warning caused by multiple inheritance
4#if _WIN32
5#if _MSC_VER
6#pragma warning(disable: 4250)
7#endif
8#endif
9
10#include "OgreRenderTechnique.h"
11#include "Ogre.h"
12
13using namespace Ogre;
14
15struct PathMapClusters;
16/**
17        @brief A technique that defines that the rendering of the object will use the path map technique.
18
19        This rendering technique can add indirect lighting to the scene.
20*/
21class OgrePathMapRenderTechnique : public OgreRenderTechnique
22{
23public:
24        /**
25                @brief Constructor.
26
27                @param passBlendingSRC                  source blend factor of the new pass
28                @param passBlendingDEST                 destination blend factor of the new pass
29                @param pass                                             the pass after which shadowing passes should be added
30                @param parentRenderable                 the object to operate on
31                @param parentTechniqueGroup             the TechniqueGroup this RenderedTechnique is attached to
32        */
33        OgrePathMapRenderTechnique(
34                                                        SceneBlendFactor passBlendingSRC,
35                                                        SceneBlendFactor passBlendingDEST,
36                                                        Pass* pass,
37                                                        OgreRenderable* parentRenderable,
38                                                        OgreTechniqueGroup* parentTechniqueGroup
39                                                        );
40        /**
41                @brief Destructor.
42        */
43        virtual ~OgrePathMapRenderTechnique();
44       
45        //inherited
46        virtual void update(unsigned long frameNum);
47       
48protected:
49        /**
50                @brief the new pass created by this technique
51        */
52        Pass* pathMapPass;
53        /**
54                @brief the PathMapClusters structure that belongs to the subentity renderable
55        */
56        PathMapClusters* clusters;
57        /**
58                @brief the weight index lookup map created by this technique
59        */
60        Texture* weightIndexTexture;
61        /**
62                @brief create a weight index lookup map
63        */
64        void createWeightIndexTexture();
65        /**
66                @brief source blend factor of the new pass
67        */
68        SceneBlendFactor passBlendingSRC;
69        /**
70                @brief destination blend factor of the new pass
71        */
72        SceneBlendFactor passBlendingDEST;
73};
74
75/**
76        @brief RenderTechniqueFactory to create OgrePathMapRenderTechnique instances.
77*/
78class OgrePathMapRenderTechniqueFactory : public RenderTechniqueFactory
79{
80public:
81       
82        OgrePathMapRenderTechniqueFactory();
83
84        OgreRenderTechnique* createInstance(IllumTechniqueParams* params,
85                                                                                Pass* pass,
86                                                                                OgreRenderable* parentRenderable,
87                                                                                OgreTechniqueGroup* parentTechniqueGroup);
88
89        SceneBlendFactor passBlendingSRC;
90        SceneBlendFactor passBlendingDEST;
91};
92
Note: See TracBrowser for help on using the repository browser.