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)
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,
[1711]23                                                                                                                Pass* pass,
24                                                                                                                OgreRenderable* parentRenderable,
25                                                                                                                OgreTechniqueGroup* parentTechniqueGroup)
[1886]26                                                                                                                :OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, getMinMax, attachToTexUnit, minVariableName, maxVariableName, pass, parentRenderable, parentTechniqueGroup),
[1725]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),
[1722]29                                                                                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)
[1711]30{       
[1725]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        }
[1722]55
[1725]56        if(sharedRuns->getRun(cubemapLayer) == 0)
57                sharedRuns->addRun(cubemapLayer, createCubeMapRun());
[1711]58       
[1725]59        colorCubeMapRunChanged(sharedRuns->getRun(cubemapLayer));
[1711]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{
[1886]81        OgreCubeMapRenderTechnique::cubeMapRunChanged(run);
82        /*OgreCubeMapRenderingRun* cuberun =(OgreCubeMapRenderingRun*) (run->asOgreRenderingRun());
[1722]83        String cubemapname = cuberun->getCubeMapTextureName();
[1886]84               
85        pass->getTextureUnitState(texID)->setTextureName(cubemapname);*/
[1711]86       
87}
88
[1930]89void OgreColorCubeMapRenderTechnique::colorCubeMapRunUpdated(RenderingRun* run)
90{
91        OgreCubeMapRenderTechnique::cubeMapRunUpdated(run);
92}
93
[1711]94///Technique factory
95OgreColorCubeMapRenderTechniqueFactory::OgreColorCubeMapRenderTechniqueFactory()
96{
[1725]97        typeName = "ColorCubeMap";
[1711]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,
[1722]122                                                                                                        renderEnvironment,
123                                                                                                        selfMaterial,
124                                                                                                        environmentMaterial,
[1725]125                                                                                                        layer,
[1886]126                                                                                                        getMinMax,
127                                                                                                    attachToTexUnit,
128                                                                                                    minVariableName,
129                                                                                                    maxVariableName,
[1711]130                                                                                                        pass,
131                                                                                                        parentRenderable,
132                                                                                                        parentTechniqueGroup);
133       
134        return result;
135}
136
Note: See TracBrowser for help on using the repository browser.