Ignore:
Timestamp:
11/08/06 14:04:22 (18 years ago)
Author:
szirmay
Message:
 
Location:
GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreRenderingRun.cpp

    r1670 r1725  
    110110                v->setOverlaysEnabled(false); 
    111111                rt->setAutoUpdated(false); 
    112  
     112                v->setBackgroundColour(clearColor); 
     113                 
    113114                Root::getSingleton().getRenderSystem()->_setViewport(v); 
    114115                Root::getSingleton().getRenderSystem()->clearFrameBuffer( FBT_COLOUR, clearColor); 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreCausticCasterRenderTechnique.cpp

    r1722 r1725  
    132132                                                                                true, 
    133133                                                                                "", 
    134                                                                                 "GameTools/DistanceShader"); 
     134                                                                                "GameTools/DistanceShader", 
     135                                                                                ILLUMRUN_DISTANCE_CUBEMAP); 
    135136 
    136137} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreColorCubeMapRenderTechnique.cpp

    r1722 r1725  
    1616                                                                                                                String selfMaterial, 
    1717                                                                                                                String environmentMaterial, 
     18                                                                                                                int layer, 
    1819                                                                                                                Pass* pass, 
    1920                                                                                                                OgreRenderable* parentRenderable, 
    2021                                                                                                                OgreTechniqueGroup* parentTechniqueGroup) 
    21                                                                                                                         :OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, pass, parentRenderable, parentTechniqueGroup), 
    22                                                                                                                         ColorCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
    23                                                                                                                         CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
     22                                                                                                                        :OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, pass, parentRenderable, parentTechniqueGroup), 
     23                                                                                                                        ColorCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
     24                                                                                                                        CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
    2425                                                                                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)  
    2526{        
    26         texturePostFix = "_COLORCUBEMAP"; 
     27        switch(layer) 
     28        { 
     29                case 0: 
     30                        texturePostFix = "_COLORCUBEMAP"; 
     31                        break; 
     32                case 1: 
     33                        texturePostFix = "_COLORCUBEMAP_L1"; 
     34                        break; 
     35                case 2: 
     36                        texturePostFix = "_COLORCUBEMAP_L2"; 
     37                        break; 
     38                case 3: 
     39                        texturePostFix = "_COLORCUBEMAP_L3"; 
     40                        break; 
     41                case 4: 
     42                        texturePostFix = "_COLORCUBEMAP_L4"; 
     43                        break; 
     44                case 5: 
     45                        texturePostFix = "_COLORCUBEMAP_L5"; 
     46                        break; 
     47                case 6: 
     48                        texturePostFix = "_COLORCUBEMAP_L6"; 
     49                        break; 
     50        } 
    2751 
    28         if(sharedRuns->getRun(ILLUMRUN_COLOR_CUBEMAP) == 0) 
    29                 sharedRuns->addRun(ILLUMRUN_COLOR_CUBEMAP, createCubeMapRun()); 
     52        if(sharedRuns->getRun(cubemapLayer) == 0) 
     53                sharedRuns->addRun(cubemapLayer, createCubeMapRun()); 
    3054         
    31         colorCubeMapRunChanged(sharedRuns->getRun(ILLUMRUN_COLOR_CUBEMAP)); 
     55        colorCubeMapRunChanged(sharedRuns->getRun(cubemapLayer)); 
    3256} 
    3357 
     
    5781} 
    5882 
    59  
    60  
    61  
    6283///Technique factory 
    6384OgreColorCubeMapRenderTechniqueFactory::OgreColorCubeMapRenderTechniqueFactory() 
    6485{ 
    65         typeName = "ColorCubeMap";       
     86        typeName = "ColorCubeMap"; 
    6687} 
    6788 
     
    91112                                                                                                        selfMaterial, 
    92113                                                                                                        environmentMaterial, 
     114                                                                                                        layer, 
    93115                                                                                                        pass, 
    94116                                                                                                        parentRenderable, 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreConvolvedCubeMapRenderTechnique.cpp

    r1722 r1725  
    2222                                                                                                                OgreTechniqueGroup* parentTechniqueGroup) 
    2323                                                        : 
    24                                                         OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, pass, parentRenderable, parentTechniqueGroup), 
    25                                                         CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
     24                                                        OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, pass, parentRenderable, parentTechniqueGroup), 
     25                                                        CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
    2626                                                        ConvolvedCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, reducedCubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
    2727                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)  
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreCubeMapRenderTechnique.cpp

    r1722 r1725  
    1616                                                                                                                String selfMaterial, 
    1717                                                                                                                String environmentMaterial, 
     18                                                                                                                int layer, 
    1819                                                                                                                Pass* pass, 
    1920                                                                                                                OgreRenderable* parentRenderable, 
     
    2122                                                                                                                bool createCubeRun) 
    2223                                                        :OgreRenderTechnique( pass, parentRenderable, parentTechniqueGroup), 
    23                                                         CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
     24                                                        CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
    2425                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)  
    2526{        
     
    6768                                                                                                renderEnvironment, 
    6869                                                                                                selfMaterial, 
    69                                                                                                 environmentMaterial); 
     70                                                                                                environmentMaterial, 
     71                                                                                                cubemapLayer); 
    7072} 
    7173 
     
    167169                f->environmentMaterial =  params; 
    168170        } 
     171        void parseLayer(String& params, RenderTechniqueFactory* factory) 
     172        { 
     173                OgreCubeMapRenderTechniqueFactory* f = (OgreCubeMapRenderTechniqueFactory*) factory; 
     174                f->layer =  StringConverter::parseInt(params); 
     175        } 
     176 
    169177} 
    170178///Technique factory 
    171179OgreCubeMapRenderTechniqueFactory::OgreCubeMapRenderTechniqueFactory() 
    172180{ 
    173          
     181        typeName = "CubeMap"; 
     182 
    174183        using namespace CubemapParsers; 
    175184 
     
    186195        this->attributeParsers.insert(AttribParserList::value_type("self_material", (ILLUM_ATTRIBUTE_PARSER) parseSelfMaterial)); 
    187196        this->attributeParsers.insert(AttribParserList::value_type("env_material", (ILLUM_ATTRIBUTE_PARSER) parseEnvMaterial)); 
     197        this->attributeParsers.insert(AttribParserList::value_type("layer", (ILLUM_ATTRIBUTE_PARSER) parseLayer)); 
    188198 
    189199} 
     
    204214        selfMaterial = ""; 
    205215        environmentMaterial = ""; 
     216        layer = 0; 
    206217} 
    207218 
     
    229240                                                                                                selfMaterial, 
    230241                                                                                                environmentMaterial, 
     242                                                                                                layer, 
    231243                                                                                                pass, 
    232244                                                                                                parentRenderable, 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreDistanceCubeMapRenderTechnique.cpp

    r1722 r1725  
    1616                                                                                                                String selfMaterial, 
    1717                                                                                                                String environmentMaterial, 
     18                                                                                                                int layer, 
    1819                                                                                                                Pass* pass, 
    1920                                                                                                                OgreRenderable* parentRenderable, 
    2021                                                                                                                OgreTechniqueGroup* parentTechniqueGroup) 
    2122                                                        : 
    22                                                         OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, pass, parentRenderable, parentTechniqueGroup), 
    23                                                         CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
    24                                                         DistanceCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, parentRenderable, parentTechniqueGroup), 
     23                                                        OgreCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, texID, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, selfMaterial, environmentMaterial, layer, pass, parentRenderable, parentTechniqueGroup), 
     24                                                        CubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
     25                                                        DistanceCubeMapRenderTechnique(startFrame, cubeMapUpdateInterval, cubeMapResolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment, layer, parentRenderable, parentTechniqueGroup), 
    2526                                                        RenderTechnique(parentRenderable, parentTechniqueGroup)  
    2627{        
    27         texturePostFix = "_DISTANCECUBEMAP"; 
     28        switch(layer) 
     29        { 
     30                case 0: 
     31                        texturePostFix = "_DISTANCECUBEMAP"; 
     32                        break; 
     33                case 1: 
     34                        texturePostFix = "_DISTANCECUBEMAP_L1"; 
     35                        break; 
     36                case 2: 
     37                        texturePostFix = "_DISTANCECUBEMAP_L2"; 
     38                        break; 
     39                case 3: 
     40                        texturePostFix = "_DISTANCECUBEMAP_L3"; 
     41                        break; 
     42                case 4: 
     43                        texturePostFix = "_DISTANCECUBEMAP_L4"; 
     44                        break; 
     45                case 5: 
     46                        texturePostFix = "_DISTANCECUBEMAP_L5"; 
     47                        break; 
     48                case 6: 
     49                        texturePostFix = "_DISTANCECUBEMAP_L6"; 
     50                        break; 
     51        } 
     52        if(sharedRuns->getRun(cubemapLayer) == 0) 
     53                sharedRuns->addRun(cubemapLayer, createCubeMapRun()); 
    2854 
    29         if(sharedRuns->getRun(ILLUMRUN_DISTANCE_CUBEMAP) == 0) 
    30                 sharedRuns->addRun(ILLUMRUN_DISTANCE_CUBEMAP, createCubeMapRun()); 
    31  
    32         distanceCubeMapRunChanged(sharedRuns->getRun(ILLUMRUN_DISTANCE_CUBEMAP)); 
     55        distanceCubeMapRunChanged(sharedRuns->getRun(cubemapLayer)); 
    3356} 
    3457 
     
    5578{ 
    5679        GpuProgramParametersSharedPtr fpParams = pass->getFragmentProgramParameters(); 
    57         Vector3 center = ((OgreSharedRuns*) sharedRuns)->getRootPosition(ILLUMRUN_DISTANCE_CUBEMAP); 
     80        Vector3 center = ((OgreSharedRuns*) sharedRuns)->getRootPosition(cubemapLayer); 
    5881        fpParams->setNamedConstant("lastCenter",center);  
    5982} 
     
    94117                                                                                                selfMaterial, 
    95118                                                                                                environmentMaterial, 
     119                                                                                                layer, 
    96120                                                                                                pass, 
    97121                                                                                                parentRenderable, 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreCubeMapRenderingRun.cpp

    r1722 r1725  
    1717                                                                                                                   bool renderEnvironment, 
    1818                                                                                                                   String selfMaterial, 
    19                                                                                                                    String environmentMaterial) 
     19                                                                                                                   String environmentMaterial,                                                                                                              
     20                                                                                                                   RenderingRunType cubemapRunType) 
    2021                                                                                                                   :CubeMapRenderingRun(startFrame, updateInterval, resolution, useDistCalc, useFaceAngleCalc, distTolerance, angleTolerance, updateAllFace, renderSelf, renderEnvironment) 
    2122                                                        , OgreRenderingRun(startFrame, updateInterval) 
     
    2324 
    2425{ 
     26        this->cubemapRunType = cubemapRunType; 
    2527        this->sharedRuns = sharedRuns; 
    2628        this->name = name; 
     
    4446void OgreCubeMapRenderingRun::createCubeMap() 
    4547{ 
     48        ColourValue clearColor = ColourValue::Black; 
     49        clearColor.a = 0.0; 
    4650        cubemapTexture = createCubeRenderTexture(name,  
    4751                                                                                                sharedRuns->getRootPosition(), 
     
    4953                                                                                                PF_FLOAT16_RGBA, 
    5054                                                                                                //PF_R8G8B8A8, 
    51                                                                                                 0);      
     55                                                                                                0, 
     56                                                                                                clearColor);     
    5257} 
    5358 
    5459void OgreCubeMapRenderingRun::updateCubeFace(int facenum) 
    5560{ 
    56         OgreSharedRuns* root = (OgreSharedRuns*) sharedRuns->getRoot(ILLUMRUN_COLOR_CUBEMAP); 
     61        OgreSharedRuns* root = (OgreSharedRuns*) sharedRuns->getRoot(cubemapRunType); 
    5762        SceneManager* sm = Ogre::Root::getSingleton()._getCurrentSceneManager(); 
    5863        RenderQueue* rq = sm->getRenderQueue(); 
     
    6065        RenderTarget* rt = cubemapTexture->getBuffer(facenum, 0).getPointer()->getRenderTarget(); 
    6166        Camera*  cam =  rt->getViewport(0)->getCamera(); 
    62         Vector3 center = sharedRuns->getRootPosition(ILLUMRUN_COLOR_CUBEMAP); 
     67        Vector3 center = sharedRuns->getRootPosition(cubemapRunType); 
    6368        cam->setPosition(center); 
    6469 
     
    9499                if(renderSelf) 
    95100                { 
    96                         sharedRuns->getRoot(ILLUMRUN_COLOR_CUBEMAP)->restoreVisibility(); 
     101                        root->restoreVisibility(); 
    97102                        if(useSelfMaterial) 
    98103                                root->setMaterial(selfMaterial); 
     
    105110        rt->update(); 
    106111 
    107         //rt->writeContentsToFile("cubbe" + StringConverter::toString(facenum) + ".dds"); 
     112        //rt->writeContentsToFile( "cubeLayer" + StringConverter::toString(cubemapRunType)+ "face" + StringConverter::toString(facenum) + ".dds"); 
    108113         
    109114        if(!renderAllwithOwnColor) 
     
    132137                if(useDistCalc) 
    133138                { 
    134                         Vector3 cubemapPosition = sharedRuns->getRootPosition(ILLUMRUN_COLOR_CUBEMAP); 
    135                         float objradius = sharedRuns->getRootBoundingSphere(ILLUMRUN_COLOR_CUBEMAP).getRadius(); 
     139                        Vector3 cubemapPosition = sharedRuns->getRootPosition(cubemapRunType); 
     140                        float objradius = sharedRuns->getRootBoundingSphere(cubemapRunType).getRadius(); 
    136141                        float fov = mainCamera->getFOVy().valueRadians() / 2.0; 
    137142                        float dist = (cubemapPosition - mainCamera->getPosition()).length(); 
Note: See TracChangeset for help on using the changeset viewer.