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

Revision 1886, 4.6 KB checked in by szirmay, 18 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
89///Technique factory
90OgreColorCubeMapRenderTechniqueFactory::OgreColorCubeMapRenderTechniqueFactory()
91{
92        typeName = "ColorCubeMap";
93}
94
95OgreRenderTechnique* OgreColorCubeMapRenderTechniqueFactory::createInstance(
96                                                                                IllumTechniqueParams* params,
97                                                                                Pass* pass,
98                                                                                OgreRenderable* parentRenderable,
99                                                                                OgreTechniqueGroup* parentTechniqueGroup)
100{       
101       
102        OgreCubeMapRenderTechniqueFactory::resetParams();
103        OgreCubeMapRenderTechniqueFactory::parseParams(params);
104        parseParams(params);
105       
106        OgreColorCubeMapRenderTechnique* result = new OgreColorCubeMapRenderTechnique(
107                                                                                                        startFrame,
108                                                                                                        cubeMapUpdateInterval,
109                                                                                                        cubeMapResolution,
110                                                                                                        texID,
111                                                                                                        useDistCalc,
112                                                                                                        useFaceAngleCalc,
113                                                                                                        distTolerance,
114                                                                                                        angleTolerance,
115                                                                                                        updateAllFace,
116                                                                                                        renderSelf,
117                                                                                                        renderEnvironment,
118                                                                                                        selfMaterial,
119                                                                                                        environmentMaterial,
120                                                                                                        layer,
121                                                                                                        getMinMax,
122                                                                                                    attachToTexUnit,
123                                                                                                    minVariableName,
124                                                                                                    maxVariableName,
125                                                                                                        pass,
126                                                                                                        parentRenderable,
127                                                                                                        parentTechniqueGroup);
128       
129        return result;
130}
131
Note: See TracBrowser for help on using the repository browser.