source: GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreColorCubeMapRenderTechnique.cpp @ 2355

Revision 2355, 4.8 KB checked in by szirmay, 17 years ago (diff)
RevLine 
[1711]1#include "OgreColorCubeMapRenderTechnique.h"
2#include "OgreTechniqueGroup.h"
[1722]3#include "OgreCubeMapRenderingRun.h"
[1711]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,
[1722]15                                                                                                                bool renderEnvironment,
16                                                                                                                String selfMaterial,
17                                                                                                                String environmentMaterial,
[1725]18                                                                                                                int layer,
[1886]19                                                                                                                bool getMinMax,
20                                                                                                                bool attachToTexUnit,
21                                                                                                                String minVariableName,
22                                                                                                                String maxVariableName,
[2355]23                                                                                                                String triggerName,
[1711]24                                                                                                                Pass* pass,
25                                                                                                                OgreRenderable* parentRenderable,
26                                                                                                                OgreTechniqueGroup* parentTechniqueGroup)
[2355]27                                                                                                                :OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, getMinMax, attachToTexUnit, minVariableName, maxVariableName, triggerName, pass, parentRenderable, parentTechniqueGroup),
[1725]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),
[1722]30                                                                                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)
[1711]31{       
[1725]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        }
[1722]56
[1725]57        if(sharedRuns->getRun(cubemapLayer) == 0)
58                sharedRuns->addRun(cubemapLayer, createCubeMapRun());
[1711]59       
[1725]60        colorCubeMapRunChanged(sharedRuns->getRun(cubemapLayer));
[1711]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{
[1886]82        OgreCubeMapRenderTechnique::cubeMapRunChanged(run);
83        /*OgreCubeMapRenderingRun* cuberun =(OgreCubeMapRenderingRun*) (run->asOgreRenderingRun());
[1722]84        String cubemapname = cuberun->getCubeMapTextureName();
[1886]85               
86        pass->getTextureUnitState(texID)->setTextureName(cubemapname);*/
[1711]87       
88}
89
[1930]90void OgreColorCubeMapRenderTechnique::colorCubeMapRunUpdated(RenderingRun* run)
91{
92        OgreCubeMapRenderTechnique::cubeMapRunUpdated(run);
93}
94
[1711]95///Technique factory
96OgreColorCubeMapRenderTechniqueFactory::OgreColorCubeMapRenderTechniqueFactory()
97{
[1725]98        typeName = "ColorCubeMap";
[1711]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,
[1722]123                                                                                                        renderEnvironment,
124                                                                                                        selfMaterial,
125                                                                                                        environmentMaterial,
[1725]126                                                                                                        layer,
[1886]127                                                                                                        getMinMax,
128                                                                                                    attachToTexUnit,
129                                                                                                    minVariableName,
130                                                                                                    maxVariableName,
[2355]131                                                                                                        triggerName,
[1711]132                                                                                                        pass,
133                                                                                                        parentRenderable,
134                                                                                                        parentTechniqueGroup);
135       
136        return result;
137}
138
Note: See TracBrowser for help on using the repository browser.