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

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