Ignore:
Timestamp:
04/19/06 00:27:14 (18 years ago)
Author:
igarcia
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCEntityTextureAtlasViewMode.cpp

    r747 r751  
    1010        mTextureAtlasGenerated = false; 
    1111        mFrame = 0; 
    12         mDebugOverlay->setScale(0.0, 0.0); 
     12        showDebugOverlay(false); 
    1313} 
    1414 
     
    4949} 
    5050 
    51 unsigned int EntityTextureAtlasViewMode::nextPowerOf2(unsigned int nPlanes) 
    52 { 
    53         unsigned int depth = 1; 
    54         while (depth < nPlanes) 
    55         { 
    56                 depth = depth << 1; 
    57         } 
    58         return depth; 
    59 } 
    60  
    6151bool EntityTextureAtlasViewMode::frameStarted(const Ogre::FrameEvent& evt, Ogre::InputReader *inputReader) 
    6252{ 
     53        mWindow->getViewport(0)->setBackgroundColour(Ogre::ColourValue(1.0, 1.0, 1.0, 1.0)); 
     54 
    6355        if (mFrame == 1) 
     56        { 
     57                mTextureAtlas->getTextureAtlasSceneNode()->setVisible(false); 
     58                mTextureAtlas->update(); 
     59                mTextureAtlas->getTextureAtlasSceneNode()->setVisible(true); 
     60        } 
     61         
     62        if (mFrame == 2) 
    6463        { 
    6564                if (!mTextureAtlasGenerated) 
     
    9392void EntityTextureAtlasViewMode::createScene() 
    9493{ 
     94        IMG::TexturePtr texturePtr ( new IMG::Texture() ); 
     95        texturePtr->bind(mTextureName); 
     96        Ogre::ColourValue avgColour = texturePtr->getAvgColour(); 
     97        mWindow->getViewport(0)->setBackgroundColour(Ogre::ColourValue(1.0, 1.0, 1.0, 1.0));  
     98 
    9599        mTextureAtlasNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(); 
    96100        mTextureAtlas = IMG::TextureAtlasPtr( new IMG::TextureAtlas() ); 
     
    109113        } 
    110114 
    111         mTextureAtlas->create(mTextureAtlasName, mTextureAtlasSize, mTextureAtlasSize, mSrcPixelFormat, mCamera); 
     115        mTextureAtlas->create(mTextureAtlasName, mTextureAtlasSize, mTextureAtlasSize, mSrcPixelFormat, mCamera, avgColour); 
    112116        mTextureAtlas->setTextureAtlasSceneNode(mTextureAtlasNode); 
    113117 
     
    116120        unsigned int irow = 1; 
    117121        unsigned int icol = 1; 
    118         unsigned int nrow = Ogre::Math::Sqrt(nextPowerOf2(numSubTextures)); 
     122        unsigned int nrow = Ogre::Math::Sqrt(BBC::Util::nextPowerOf2(numSubTextures)); 
    119123        Ogre::Real step = 2.0 / nrow; 
    120124        Ogre::Real degreeStep = 360.0 / numSubTextures; 
    121125        Ogre::Real degree = 0.0; 
    122126 
    123         IMG::TexturePtr texturePtr ( new IMG::Texture() ); 
    124         texturePtr->bind(mTextureName); 
    125127        Ogre::MaterialPtr materialPtr = Ogre::MaterialManager::getSingleton().create("TextureAtlas" + Ogre::StringConverter::toString(numSubTextures), Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);                 
    126         materialPtr->getTechnique(0)->getPass(0)->setDiffuse( 1.0, 1.0, 1.0, 0.0); 
    127         materialPtr->getTechnique(0)->getPass(0)->setAmbient( texturePtr->getAvgColour() ); 
     128        materialPtr->getTechnique(0)->getPass(0)->setAlphaRejectSettings(Ogre::CMPF_GREATER_EQUAL, 10); 
     129        materialPtr->getTechnique(0)->getPass(0)->createTextureUnitState("transparent.png"); 
     130        materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureFiltering(Ogre::FO_NONE, Ogre::FO_NONE, Ogre::FO_NONE);                      
     131        materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureAddressingMode(Ogre::TextureUnitState::TAM_CLAMP); 
     132        materialPtr->getTechnique(0)->getPass(0)->setLightingEnabled(false); 
    128133        mTextureAtlas->setMaterial(materialPtr.getPointer());    
    129134        mTextureAtlas->setCorners(-1.0, 1.0, 1.0, -1.0);         
     
    133138                IMG::TexturePtr texturePtr = IMG::TexturePtr( new IMG::Texture() ); 
    134139                Ogre::MaterialPtr materialPtr = Ogre::MaterialManager::getSingleton().create("TextureAtlas" + Ogre::StringConverter::toString(iSubTexture), Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);            
    135                 materialPtr->getTechnique(0)->getPass(0)->setAmbient(maxTexCoords[0], maxTexCoords[1], 1.0 ); 
    136                 materialPtr->getTechnique(0)->getPass(0)->setDiffuse( 1.0, 1.0, 1.0, 1.0); 
     140                materialPtr->getTechnique(0)->getPass(0)->setAmbient(Ogre::Math::RangeRandom(1.0, 0.0), 1.0, 0.0); 
     141                materialPtr->getTechnique(0)->getPass(0)->setDiffuse(1.0, 1.0, 1.0, 1.0); 
     142                //materialPtr->getTechnique(0)->getPass(0)->setLightingEnabled(false); 
    137143                materialPtr->getTechnique(0)->getPass(0)->setAlphaRejectSettings(Ogre::CMPF_GREATER_EQUAL, 10); 
    138144                materialPtr->getTechnique(0)->getPass(0)->createTextureUnitState(mTextureName, 0); 
    139145                materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureFiltering(Ogre::FO_NONE, Ogre::FO_NONE, Ogre::FO_NONE); 
    140146                materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureAddressingMode(Ogre::TextureUnitState::TAM_CLAMP); 
    141                 materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureRotate(Ogre::Radian(Ogre::Degree(degree))); 
    142                 materialPtr->getTechnique(0)->getPass(0)->setLightingEnabled(false); 
     147                materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureRotate(Ogre::Radian(Ogre::Degree(degree)));          
    143148                 
    144149                texturePtr->setMaterial(materialPtr.getPointer()); 
Note: See TracChangeset for help on using the changeset viewer.