鐨凮gre緋誨垪鏁欑▼鐨勪腑鏂囩炕璇戠増錛屽姞涓婁竴浜涙垜鑷繁瀛︿範鏃剁殑絎旇銆?/span>
Ogre涓夊熀鐭?br>
SceneManager 鍦烘櫙綆$悊鍣?br>
灞忓箷涓婃樉紺虹殑鎵鏈変笢瑗塊兘鏈夊満鏅鐞嗗櫒鏉ョ鐞嗐傚綋寰鍦烘櫙涓坊鍔犵墿浣撴椂錛屽満鏅鐞嗗櫒浼氳褰曠墿浣撶殑浣嶇疆錛屽綋娣誨姞鎽勫儚鏈烘潵瑙傚療鏌愪釜鍦烘櫙鏃訛紝鍦烘櫙綆$悊鍣ㄤ細璁板綍鎽勫儚鏈虹殑浣嶇疆銆侽gre閲屾湁澶氱鍦烘櫙綆$悊鍣?br>
Entity 瀹炰綋
涓涓疄浣撴槸鍙互鍦ㄥ満鏅腑娓叉煋鐨勭墿浣撲箣涓銆傚彲浠ユ妸瀹炰綋鐞嗚В涓轟換浣曚竴涓?D妯″瀷銆備竴涓満鍣ㄤ漢鍙互浣夸竴涓疄浣擄紝涓鏉¢奔鍙互鏄竴涓疄浣擄紝澶у湴鑽夊師鍙互鏄竴涓潪甯稿ぇ鐨勫疄浣撱?span style="color: red;">鐏厜錛屾憚鍍忔満錛岀矑瀛愶紝騫垮憡鐗岀瓑涓嶈兘鎴愪負瀹炰綋銆?/span>
Ogre涓綘涓嶈兘鐩存帴灝嗕竴涓疄浣撴斁鍏ュ満鏅腑錛岃屾槸灝嗗疄浣撲笌鍦烘櫙鑺傜偣緇戝湪涓璧鳳紝榪欎釜鍦烘櫙鑺傜偣鍒欏寘鎷簡瀹炰綋鐨勬柟浣嶄俊鎭?br>
SceneNode 鍦烘櫙鑺傜偣
鍦烘櫙鑺傜偣灝嗘寔緇窡韙笌瀹冪粦鍦ㄤ竴璧風殑瀹炰綋鐨勬柟浣嶃傚綋浣犲垱寤轟簡涓涓疄浣撴椂錛屽畠鐩村埌涓庝竴涓満鏅妭鐐圭粦瀹氬悗鎵嶄細琚覆鏌撱傚悓鏍鳳紝涓涓満鏅妭鐐逛篃涓嶈兘鍗曠嫭鐨勫湪灞忓箷涓婃樉紺哄嚭鏉ワ紝鍙湁涓庝竴涓疄浣撶粦瀹氬悗鎵嶈兘鍦ㄥ睆騫曚笂鏄劇ず銆?span style="color: red;">涓涓満鏅妭鐐瑰彲浠ョ粦瀹氬涓疄浣擄紝鍦烘櫙鑺傜偣鍚屾牱鍙互鍜屽叾浠栧満鏅妭鐐圭粦瀹氾紝浣嗘槸涓涓疄浣撲笉鑳借澶氫釜鍦烘櫙鑺傜偣緇戝畾銆?/span>
姣忎釜鍦烘櫙綆$悊鍣ㄩ兘鏈変竴涓牴鑺傜偣錛岃屽満鏅妭鐐歸兘鏄湪鏍硅妭鐐圭殑鍩虹涓婂緩绔嬶紝鍏朵綅緗繪槸鐩稿浜庢牴鑺傜偣鐨勩?br>
瀹炶返
瑕佸垱寤轟竴涓疄浣擄紝鍙互璋冪敤SceneManager鐨刢reateEntity鏂規(guī)硶錛?br>
// 鍒涘緩涓涓疄浣? 鍔犺澆Athena緗戞牸銆?/span>
Entity* entity1 = mSceneMgr->createEntity("athene1", "athene.mesh");
createEntity鐨勭涓涓弬鏁頒負瀹炰綋鎸囧畾浜嗕竴涓敮涓鐨勬爣璇嗙錛岀浜屼釜鍙傛暟琛ㄧず瑕佸姞杞界殑璧勬簮鍚嶇О錛屽湪榪欓噷鏄竴涓悕涓篴thene鐨勭綉鏍兼ā鍨嬨?br>
鎴戜滑鍙互涓鴻繖涓疄浣撲唬琛ㄧ殑緗戞牸妯″紡鎸囧畾涓涓潗璐細
// 璁劇疆緗戞牸鏉愯川銆?/span>
entity1->setMaterialName("Examples/Athene/NormalMapped");
鍒涘緩浜嗕竴涓疄浣撳悗錛岃繕瑕佸垱寤轟竴涓満鏅妭鐐逛笌瀹冪粦瀹氳搗鏉ワ細
// 鍒涘緩涓涓瓙鍦烘櫙鑺傜偣銆?/span>
SceneNode* node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("athene1");
涓庡疄浣撲竴鏍鳳紝鍦烘櫙鑺傜偣鐨勫悕瀛椾篃鏄敮涓鐨勶紝鍦ㄨ繖閲屾槸athene1銆?br>
鐒跺悗灝嗗疄浣撳拰鍦烘櫙鑺傜偣緇戝畾錛?br>
// 灝嗗疄浣撶粦瀹氬埌鍦烘櫙鑺傜偣涓娿?/span>
node1->attachObject(entity1);
緇戝畾涔嬪悗瀹炰綋灝變細琚覆鏌撳嚭鏉ワ紝榛樿鎯呭喌涓嬪疄浣撲細琚覆鏌撳埌涓栫晫鍧愭爣鐨勫師鐐?0, 0, 0)澶勩?br>
瑕佹敼鍙樺疄浣撳湪鍦烘櫙涓殑浣嶇疆錛屽彲浠ヤ嬌鐢ㄤ笌涔嬬粦瀹氱殑鍦烘櫙鑺傜偣鐨剆etPosition鏂規(guī)硶錛?br>
node1->setPosition(30, 0, 0);
榪欐牱鍦烘櫙鑺傜偣灝辯浉瀵逛簬鏍硅妭鐐瑰線X杞存鏂瑰悜縐誨姩浜?0涓崟浣嶃?br>
鍚屾牱錛岃繕鍙互浣跨敤鍦烘櫙鑺傜偣鐨則ranslate鏂規(guī)硶杈懼埌鐩稿悓鐨勭洰鐨勶細
node1->translate(Vector3(30, 0, 0));
setPosition浣嶇疆鐨勬敼鍙樻槸鐩稿浜庣埗鑺傜偣鐨?translate鍒欏彲浠ヨ緗彉鎹㈢浉瀵逛簬鍝釜鍧愭爣緋匯?br>
瑕佸緱鍒板満鏅妭鐐圭殑鐖惰妭鐐癸紝鍙互璋冪敤getParentNode:
SceneNode* parentNode = node1->getParentSceneNode();
瑕佸緱鍒板満鏅妭鐐圭殑鍚嶇О錛屽彲浠ヨ皟鐢╣etName:
String nodeName = nod1->getName();
鍥犱負鍦烘櫙鑺傜偣鐨勭Щ鍔ㄩ兘鏄浉瀵逛簬鐖惰妭鐐圭殑錛屾墍浠ュ緢瀹規(guī)槗瀹炵幇涓や釜鑺傜偣涓璧風Щ鍔細
Entity *entity1 = mSceneMgr->createEntity( "Athene1", "Athene.mesh" );
SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "AtheneNode1" );
ode1->attachObject( entity1 );
Entity *entity2 = mSceneMgr->createEntity( "Athene2", "Athene.mesh" );
SceneNode *node2 = node1->createChildSceneNode( "AtheneNode2", Vector3( 50, 0, 0 ) );
node2->attachObject( entity2 );
榪欐牱涓鏉ワ紝node1灝辨垚浜唍ode2鐨勭埗鑺傜偣錛岀Щ鍔╪ode1浼氫嬌node2璺熺潃涓璧風Щ鍔紝鑰岀Щ鍔╪ode2涓嶄細褰卞搷node1銆?br>
緙╂斁
浣跨敤鍦烘櫙鑺傜偣鍙互瀵圭綉鏍兼ā鍨嬭繘琛岀緝鏀撅細
node1->scale(1.5, 1.5, 1.5);
scale鐨勪笁涓弬鏁板垎鍒搴攛, y, z鏂瑰悜涓婄殑緙╂斁姣斾緥錛屼笂闈㈢殑渚嬪瓙灝嗙綉鏍兼ā鍨嬫斁澶у埌1.5鍊嶃?br>
鏃嬭漿
榪樺彲浠ュ緗戞牸妯″瀷榪涜鏃嬭漿錛屽叾涓瓂aw鏄痀杞寸殑鏃嬭漿錛宲itch鏄疿杞寸殑鏃嬭漿錛宺oll鏄痁杞寸殑鏃嬭漿錛?br>
node1->yaw(Degree(-90));
node1->pitch(Degree(-90));
node1->roll(Degree(-90));

]]>