看板 GameDesign 關於我們 聯絡資訊
大家好 我又來發問了 <(_ _)> 這次是關於 OGRE Texture 的旋轉 等特效問題 程式碼如下: Entity * et = mSceneMgr->createEntity( "Test" , "Test.mesh" ); Ogre::TextureUnitState *texture; texture = et->getSubEntity(0)->getMaterial()->getTechnique(0) ->getPass(0)->getTextureUnitState(0); texture->setTextureRotate( Ogre::Degree(180) ); et->getSubEntity(0)->getMaterial()->getTechnique(0)->getPass(0) ->getTextureUnitState(0)->setTextureName( texture->getTextureName() ); 我原本認為 這樣一來 就會看到 Texture 以180度旋轉的情形發生 但是卻完全沒有動靜 搞了好幾天 依然沒有進展 因此再度上來向各位前輩請益 請大家幫幫忙 <(_ _)> 又 之前有另外實驗一段程式碼 可以達到 Texture 以180度旋轉的效果 但是 Material 的其他屬性 如 : Diffuse 等等 設定會跟原本 *.mesh 紀錄的不一樣 而且還必需每執行一次旋轉 都重新產生 Material 這樣會消耗無謂資源 ... 程式碼如下: Entity * et = mSceneMgr->createEntity( "Test" , "Test.mesh" ); MaterialPtr material = MaterialManager::getSingleton() .create("TestMaterial", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); material->getTechnique(0)->getPass(0)->createTextureUnitState (et->getSubEntity(0)->getMaterial()->getTechnique(0) ->getPass(0)->getTextureUnitState(0)->getTextureName() ); material->getTechnique(0)->getPass(0)->getTextureUnitState(0) ->setTextureRotate(Ogre::Degree(180)); et->setMaterialName( material->getName() ); 麻煩大家非常不好意思 但還是希望大家可以多多幫忙 謝謝大家 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.190.21