source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/source/OgreIllumModule/src/RenderTechniques/OgreColorCubeMapRenderTechnique.cpp @ 3255

Revision 3255, 4.8 KB checked in by szirmay, 15 years ago (diff)
Line 
1#include "OgreColorCubeMapRenderTechnique.h"
2#include "OgreTechniqueGroup.h"
3#include "OgreCubeMapRenderingRun.h"
4
5OgreColorCubeMapRenderTechnique::OgreColorCubeMapRenderTechnique(unsigned long startFrame,
6                                                                                                                unsigned long cubeMapUpdateInterval,
7                                                                                                                unsigned int cubeMapResolution,                                                                                         
8                                                                                                                unsigned char texID,
9                                                                                                                bool useDistCalc,
10                                                                                                                bool useFaceAngleCalc,
11                                                                                                                float distTolerance,
12                                                                                                                float angleTolerance,
13                                                                                                                bool updateAllFace,
14                                                                                                                bool renderSelf,
15                                                                                                                bool renderEnvironment,
16                                                                                                                String selfMaterial,
17                                                                                                                String environmentMaterial,
18                                                                                                                int layer,
19                                                                                                                bool getMinMax,
20                                                                                                                bool attachToTexUnit,
21                                                                                                                String minVariableName,
22                                                                                                                String maxVariableName,
23                                                                                                                String triggerName,
24                                                                                                                Pass* pass,
25                                                                                                                OgreRenderable* parentRenderable,
26                                                                                                                OgreTechniqueGroup* parentTechniqueGroup)
27                                                                                                                :OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, getMinMax, attachToTexUnit, minVariableName, maxVariableName, triggerName, pass, parentRenderable, parentTechniqueGroup),
28                                                                                                                        ColorCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup),
29                                                                                                                        CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup),
30                                                                                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)
31{       
32        switch(layer)
33        {
34                case 0:
35                        texturePostFix = "_COLORCUBEMAP";
36                        break;
37                case 1:
38                        texturePostFix = "_COLORCUBEMAP_L1";
39                        break;
40                case 2:
41                        texturePostFix = "_COLORCUBEMAP_L2";
42                        break;
43                case 3:
44                        texturePostFix = "_COLORCUBEMAP_L3";
45                        break;
46                case 4:
47                        texturePostFix = "_COLORCUBEMAP_L4";
48                        break;
49                case 5:
50                        texturePostFix = "_COLORCUBEMAP_L5";
51                        break;
52                case 6:
53                        texturePostFix = "_COLORCUBEMAP_L6";
54                        break;
55        }
56
57        if(sharedRuns->getRun(cubemapLayer) == 0)
58                sharedRuns->addRun(cubemapLayer, createCubeMapRun());
59       
60        colorCubeMapRunChanged(sharedRuns->getRun(cubemapLayer));
61}
62
63
64OgreColorCubeMapRenderTechnique::~OgreColorCubeMapRenderTechnique()
65{
66
67}
68
69void OgreColorCubeMapRenderTechnique::update(unsigned long frameNum)
70{
71        ColorCubeMapRenderTechnique::update(frameNum);
72        /*
73        GpuProgramParametersSharedPtr fpParams = pass->getFragmentProgramParameters();
74        Vector3 center = ((OgreSharedRuns*) sharedRuns)->getRootPosition();
75        fpParams->setNamedConstant("lastCenter",center);
76        pass->setFragmentProgramParameters(fpParams); */
77       
78}
79
80void OgreColorCubeMapRenderTechnique::colorCubeMapRunChanged(RenderingRun* run)
81{
82        OgreCubeMapRenderTechnique::cubeMapRunChanged(run);
83        /*OgreCubeMapRenderingRun* cuberun =(OgreCubeMapRenderingRun*) (run->asOgreRenderingRun());
84        String cubemapname = cuberun->getCubeMapTextureName();
85               
86        pass->getTextureUnitState(texID)->setTextureName(cubemapname);*/
87       
88}
89
90void OgreColorCubeMapRenderTechnique::colorCubeMapRunUpdated(RenderingRun* run)
91{
92        OgreCubeMapRenderTechnique::cubeMapRunUpdated(run);
93}
94
95///Technique factory
96OgreColorCubeMapRenderTechniqueFactory::OgreColorCubeMapRenderTechniqueFactory()
97{
98        typeName = "ColorCubeMap";
99}
100
101OgreRenderTechnique* OgreColorCubeMapRenderTechniqueFactory::createInstance(
102                                                                                IllumTechniqueParams* params,
103                                                                                Pass* pass,
104                                                                                OgreRenderable* parentRenderable,
105                                                                                OgreTechniqueGroup* parentTechniqueGroup)
106{       
107       
108        OgreCubeMapRenderTechniqueFactory::resetParams();
109        OgreCubeMapRenderTechniqueFactory::parseParams(params);
110        parseParams(params);
111       
112        OgreColorCubeMapRenderTechnique* result = new OgreColorCubeMapRenderTechnique(
113                                                                                                        startFrame,
114                                                                                                        cubeMapUpdateInterval,
115                                                                                                        cubeMapResolution,
116                                                                                                        texID,
117                                                                                                        useDistCalc,
118                                                                                                        useFaceAngleCalc,
119                                                                                                        distTolerance,
120                                                                                                        angleTolerance,
121                                                                                                        updateAllFace,
122                                                                                                        renderSelf,
123                                                                                                        renderEnvironment,
124                                                                                                        selfMaterial,
125                                                                                                        environmentMaterial,
126                                                                                                        layer,
127                                                                                                        getMinMax,
128                                                                                                    attachToTexUnit,
129                                                                                                    minVariableName,
130                                                                                                    maxVariableName,
131                                                                                                        triggerName,
132                                                                                                        pass,
133                                                                                                        parentRenderable,
134                                                                                                        parentTechniqueGroup);
135       
136        return result;
137}
138
Note: See TracBrowser for help on using the repository browser.