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

Revision 2185, 2.2 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 DepthShadowRecieverRenderTechnique used in an OGRE environment.
18
19        This technique defines that the object will recieve shadows with the help of depth shadow maps.
20        Each lightsource can have a depth map assigned to it. These are going to be refreshed only
21        if shadow recievers are visible. It is the shadow reciever technique's resposibility
22        to refresh them.
23
24        The shadows from each light are calculated in separate passes. Each pass will
25        modulate the shaded image, so thes should be the last passes (but before caustic passes).
26        The given Pass* parameter n the constructor defines the pass after which new
27        shadow recieving passes will be added by the technique.
28
29*/
30class OgrePathMapRenderTechnique : public OgreRenderTechnique
31{
32public:
33        /**
34                @brief Constructor.
35
36                @param maxlights                                the maximum number of light sources to recieve shadow from
37                @param shadowVertexProgram              the vertex program to be used in the shadowing passes
38                @param shadowFragmentProgram    the fragment program to be used in the shadowing passes
39                                                                                It should have one pass and the depth map of a light will be bound to the first sampler unit.
40                @param pass                                             the pass after which shadowing passes should be added
41                @param parentRenderable                 the object to operate on
42                @param parentTechniqueGroup             the TechniqueGroup this RenderedTechnique is attached to
43        */
44        OgrePathMapRenderTechnique(Pass* pass,
45                                                        OgreRenderable* parentRenderable,
46                                                        OgreTechniqueGroup* parentTechniqueGroup
47                                                        );
48        /**
49                @brief Destructor.
50        */
51        ~OgrePathMapRenderTechnique();
52       
53        //inherited
54        virtual void update(unsigned long frameNum);
55       
56protected:     
57       
58        PathMapClusters* clusters;     
59};
60
61
62class OgrePathMapRenderTechniqueFactory : public RenderTechniqueFactory
63{
64public:
65       
66        OgrePathMapRenderTechniqueFactory();
67
68        OgreRenderTechnique* createInstance(IllumTechniqueParams* params,
69                                                                                Pass* pass,
70                                                                                OgreRenderable* parentRenderable,
71                                                                                OgreTechniqueGroup* parentTechniqueGroup);
72};
73
Note: See TracBrowser for help on using the repository browser.