Changeset 751 for GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCEntityTextureAtlasViewMode.cpp
- Timestamp:
- 04/19/06 00:27:14 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCEntityTextureAtlasViewMode.cpp
r747 r751 10 10 mTextureAtlasGenerated = false; 11 11 mFrame = 0; 12 mDebugOverlay->setScale(0.0, 0.0);12 showDebugOverlay(false); 13 13 } 14 14 … … 49 49 } 50 50 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 61 51 bool EntityTextureAtlasViewMode::frameStarted(const Ogre::FrameEvent& evt, Ogre::InputReader *inputReader) 62 52 { 53 mWindow->getViewport(0)->setBackgroundColour(Ogre::ColourValue(1.0, 1.0, 1.0, 1.0)); 54 63 55 if (mFrame == 1) 56 { 57 mTextureAtlas->getTextureAtlasSceneNode()->setVisible(false); 58 mTextureAtlas->update(); 59 mTextureAtlas->getTextureAtlasSceneNode()->setVisible(true); 60 } 61 62 if (mFrame == 2) 64 63 { 65 64 if (!mTextureAtlasGenerated) … … 93 92 void EntityTextureAtlasViewMode::createScene() 94 93 { 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 95 99 mTextureAtlasNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(); 96 100 mTextureAtlas = IMG::TextureAtlasPtr( new IMG::TextureAtlas() ); … … 109 113 } 110 114 111 mTextureAtlas->create(mTextureAtlasName, mTextureAtlasSize, mTextureAtlasSize, mSrcPixelFormat, mCamera );115 mTextureAtlas->create(mTextureAtlasName, mTextureAtlasSize, mTextureAtlasSize, mSrcPixelFormat, mCamera, avgColour); 112 116 mTextureAtlas->setTextureAtlasSceneNode(mTextureAtlasNode); 113 117 … … 116 120 unsigned int irow = 1; 117 121 unsigned int icol = 1; 118 unsigned int nrow = Ogre::Math::Sqrt( nextPowerOf2(numSubTextures));122 unsigned int nrow = Ogre::Math::Sqrt(BBC::Util::nextPowerOf2(numSubTextures)); 119 123 Ogre::Real step = 2.0 / nrow; 120 124 Ogre::Real degreeStep = 360.0 / numSubTextures; 121 125 Ogre::Real degree = 0.0; 122 126 123 IMG::TexturePtr texturePtr ( new IMG::Texture() );124 texturePtr->bind(mTextureName);125 127 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); 128 133 mTextureAtlas->setMaterial(materialPtr.getPointer()); 129 134 mTextureAtlas->setCorners(-1.0, 1.0, 1.0, -1.0); … … 133 138 IMG::TexturePtr texturePtr = IMG::TexturePtr( new IMG::Texture() ); 134 139 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); 137 143 materialPtr->getTechnique(0)->getPass(0)->setAlphaRejectSettings(Ogre::CMPF_GREATER_EQUAL, 10); 138 144 materialPtr->getTechnique(0)->getPass(0)->createTextureUnitState(mTextureName, 0); 139 145 materialPtr->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureFiltering(Ogre::FO_NONE, Ogre::FO_NONE, Ogre::FO_NONE); 140 146 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))); 143 148 144 149 texturePtr->setMaterial(materialPtr.getPointer());
Note: See TracChangeset
for help on using the changeset viewer.