Ignore:
Timestamp:
05/16/07 08:37:09 (17 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

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

    r2375 r2379  
    7575} 
    7676 
     77bool  OgreDepthShadowMapRenderingRun::renderableQueued (Renderable *rend, uint8 groupID, ushort priority, Technique **ppTech) 
     78{ 
     79        OgreTechniqueGroup* TG = (OgreTechniqueGroup*) rend->getRenderTechniqueGroup(); 
     80        if(TG) 
     81        { 
     82                String materialToSet = materialName; 
     83                String triggeredMaterial = TG->getMaterialNameForTrigger(triggerName); 
     84                if(triggeredMaterial != "")//a trigger is associated 
     85                        materialToSet = triggeredMaterial; 
     86                Technique* techn = ((Material*)MaterialManager::getSingleton().getByName(       materialToSet ).getPointer())->getTechnique(0); 
     87                *ppTech = techn;         
     88        } 
     89        return true; 
     90} 
     91 
    7792void OgreDepthShadowMapRenderingRun::updateFrame(unsigned long frameNum) 
    7893{ 
    7994        refreshLight(frameNum); 
    8095 
     96        RenderQueue* rq = Root::getSingleton()._getCurrentSceneManager()->getRenderQueue();              
     97        rq->setRenderableListener(this); 
     98 
    8199        if(light->getType() == Light::LT_POINT) 
    82         { 
    83                 //static int currentFace = 0; 
    84                 //updateDepthCubeFace(currentFace); 
    85                 //currentFace = (currentFace+1)%6; 
     100        {                
    86101                 
    87  
    88                 //Timer* t = Root::getSingleton().getTimer(); 
    89                 //unsigned long  start =  t->getMicroseconds();          
    90                 //setMaterialForRenderables(materialName, true);                                 
    91                 //unsigned long  end =  t->getMicroseconds(); 
    92                 //double elapsed = (double) (end - start) / 1000.0; 
    93                 //LogManager::getSingleton().logMessage(String("MaterialSetTime: ") + name + " : " + StringConverter::toString(Real(elapsed)) + " ms"); 
    94                 //visibleObjects.clear(); 
    95  
    96102                for(int i = 0; i < 6 ; i++) 
    97                         updateDepthCubeFace(i); 
    98  
    99                 //start =  t->getMicroseconds(); 
    100                  
    101                 restoreMaterials(); 
    102  
    103                 //end =  t->getMicroseconds(); 
    104                 //elapsed = (double) (end - start) / 1000000.0; 
    105                 //LogManager::getSingleton().logMessage(String("MaterialRestoreTime: ") + name + " : " +  StringConverter::toString(Real(elapsed)) + " ms");     
     103                        updateDepthCubeFace(i);          
     104 
     105                //restoreMaterials(); 
    106106        } 
    107107        else 
     
    109109                updateDepthMap(); 
    110110        }        
     111 
     112        rq->setRenderableListener(0); 
    111113} 
    112114 
     
    114116{        
    115117        Vector3 lightpos = light->getDerivedPosition();                  
    116         String triggerName = "ILLUM_TRIGGER_SM_POINT";   
    117118                 
    118119        RenderTarget* rt = depthMapTexture->getBuffer(facenum, 0).getPointer()->getRenderTarget();       
     
    122123         
    123124         
    124         setMaterialForVisibles(materialName, cam, true, false, triggerName); 
     125        //setMaterialForVisibles(materialName, cam, true, false, triggerName); 
    125126         
    126127        rt->update(); 
     
    144145void OgreDepthShadowMapRenderingRun::updateDepthMap() 
    145146{ 
    146         String triggerName; 
    147         switch(light->getType()) 
    148         { 
    149         case Light::LT_DIRECTIONAL: 
    150                 triggerName = "ILLUM_TRIGGER_SM_DIRECTIONAL"; 
    151                 break; 
    152         case Light::LT_SPOTLIGHT: 
    153                 triggerName = "ILLUM_TRIGGER_SM_SPOT"; 
    154                 break;   
    155         } 
    156         setMaterialForVisibles(materialName, depthMapCamera, true, false, triggerName);  
     147         
    157148        RenderTarget* rt = depthMapTexture->getBuffer().getPointer()->getRenderTarget();         
    158149        Viewport* vp = rt->getViewport(0); 
    159150         
     151        //setMaterialForVisibles(materialName, depthMapCamera, true, false, triggerName);        
     152         
    160153        rt->update(); 
    161         restoreMaterials(); 
     154         
     155        //restoreMaterials(); 
    162156         
    163157        if(OgreIlluminationManager::getSingleton().getBlurShadowMap(light->getType())) 
     
    184178void OgreDepthShadowMapRenderingRun::refreshLight(unsigned long frameNum) 
    185179{ 
    186          
    187180        if(light!= 0) 
    188181        { 
     
    191184                if(light->getType() == Light::LT_DIRECTIONAL) 
    192185                { 
     186                        triggerName = "ILLUM_TRIGGER_SM_DIRECTIONAL"; 
    193187                        Camera* viewcam = OgreIlluminationManager::getSingleton().getMainCamera();                       
    194188                         
     
    296290                else if(light->getType() == Light::LT_SPOTLIGHT) 
    297291                { 
     292                        triggerName = "ILLUM_TRIGGER_SM_SPOT"; 
    298293                        Camera* viewcam = OgreIlluminationManager::getSingleton().getMainCamera();                       
    299294                         
     
    428423                { 
    429424                        lightFarPlane = light->getAttenuationRange(); 
     425                        triggerName = "ILLUM_TRIGGER_SM_POINT";          
    430426                        //no other adjustment needed                     
    431427                } 
Note: See TracChangeset for help on using the changeset viewer.