作者pleaselouis (LOUISN)
看板GameDesign
標題[請益] 請問 OGRE Texture 旋轉 等特效處理
時間Thu Feb 12 10:53:37 2009
大家好 我又來發問了 <(_ _)> 這次是關於 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