青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++優(yōu)雅之旅

探索C++

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  15 隨筆 :: 0 文章 :: 20 評論 :: 0 Trackbacks
本系列文章部分內(nèi)容來源于http://ogre3d.cn 的Ogre系列教程的中文翻譯版,加上一些我自己學(xué)習(xí)時(shí)的筆記。

Ogre三基石

SceneManager 場景管理器

    屏幕上顯示的所有東西都有場景管理器來管理。當(dāng)往場景中添加物體時(shí),場景管理器會記錄物體的位置,當(dāng)添加攝像機(jī)來觀察某個(gè)場景時(shí),場景管理器會記錄攝像機(jī)的位置。Ogre里有多種場景管理器

Entity 實(shí)體

    一個(gè)實(shí)體是可以在場景中渲染的物體之一。可以把實(shí)體理解為任何一個(gè)3D模型。一個(gè)機(jī)器人可以使一個(gè)實(shí)體,一條魚可以是一個(gè)實(shí)體,大地草原可以是一個(gè)非常大的實(shí)體。燈光,攝像機(jī),粒子,廣告牌等不能成為實(shí)體。
    Ogre中你不能直接將一個(gè)實(shí)體放入場景中,而是將實(shí)體與場景節(jié)點(diǎn)綁在一起,這個(gè)場景節(jié)點(diǎn)則包括了實(shí)體的方位信息。

SceneNode 場景節(jié)點(diǎn)
  
    場景節(jié)點(diǎn)將持續(xù)跟蹤與它綁在一起的實(shí)體的方位。當(dāng)你創(chuàng)建了一個(gè)實(shí)體時(shí),它直到與一個(gè)場景節(jié)點(diǎn)綁定后才會被渲染。同樣,一個(gè)場景節(jié)點(diǎn)也不能單獨(dú)的在屏幕上顯示出來,只有與一個(gè)實(shí)體綁定后才能在屏幕上顯示。一個(gè)場景節(jié)點(diǎn)可以綁定多個(gè)實(shí)體,場景節(jié)點(diǎn)同樣可以和其他場景節(jié)點(diǎn)綁定,但是一個(gè)實(shí)體不能被多個(gè)場景節(jié)點(diǎn)綁定。
    每個(gè)場景管理器都有一個(gè)根節(jié)點(diǎn),而場景節(jié)點(diǎn)都是在根節(jié)點(diǎn)的基礎(chǔ)上建立,其位置總是相對于根節(jié)點(diǎn)的。

實(shí)踐

    要創(chuàng)建一個(gè)實(shí)體,可以調(diào)用SceneManager的createEntity方法:
   
// 創(chuàng)建一個(gè)實(shí)體, 加載Athena網(wǎng)格。
Entity
* entity1 = mSceneMgr->createEntity("athene1""athene.mesh");
    createEntity的第一個(gè)參數(shù)為實(shí)體指定了一個(gè)唯一的標(biāo)識符,第二個(gè)參數(shù)表示要加載的資源名稱,在這里是一個(gè)名為athene的網(wǎng)格模型。

    我們可以為這個(gè)實(shí)體代表的網(wǎng)格模式指定一個(gè)材質(zhì):
// 設(shè)置網(wǎng)格材質(zhì)。
entity1->setMaterialName("Examples/Athene/NormalMapped");

    創(chuàng)建了一個(gè)實(shí)體后,還要創(chuàng)建一個(gè)場景節(jié)點(diǎn)與它綁定起來:
// 創(chuàng)建一個(gè)子場景節(jié)點(diǎn)。
SceneNode* node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("athene1");
    與實(shí)體一樣,場景節(jié)點(diǎn)的名字也是唯一的,在這里是athene1。

    然后將實(shí)體和場景節(jié)點(diǎn)綁定:
// 將實(shí)體綁定到場景節(jié)點(diǎn)上。
node1->attachObject(entity1);
    綁定之后實(shí)體就會被渲染出來,默認(rèn)情況下實(shí)體會被渲染到世界坐標(biāo)的原點(diǎn)(0, 0, 0)處。

    要改變實(shí)體在場景中的位置,可以使用與之綁定的場景節(jié)點(diǎn)的setPosition方法:
node1->setPosition(3000);
    這樣場景節(jié)點(diǎn)就相對于根節(jié)點(diǎn)往X軸正方向移動了10個(gè)單位。

    同樣,還可以使用場景節(jié)點(diǎn)的translate方法達(dá)到相同的目的:
node1->translate(Vector3(3000));
    setPosition位置的改變是相對于父節(jié)點(diǎn)的,translate則可以設(shè)置變換相對于哪個(gè)坐標(biāo)系。

    要得到場景節(jié)點(diǎn)的父節(jié)點(diǎn),可以調(diào)用getParentNode:
SceneNode* parentNode = node1->getParentSceneNode();
    
    要得到場景節(jié)點(diǎn)的名稱,可以調(diào)用getName:
String nodeName = nod1->getName();

    因?yàn)閳鼍肮?jié)點(diǎn)的移動都是相對于父節(jié)點(diǎn)的,所以很容易實(shí)現(xiàn)兩個(gè)節(jié)點(diǎn)一起移動:
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( 5000 ) );
node2
->attachObject( entity2 );
    這樣一來,node1就成了node2的父節(jié)點(diǎn),移動node1會使node2跟著一起移動,而移動node2不會影響node1。

縮放

    使用場景節(jié)點(diǎn)可以對網(wǎng)格模型進(jìn)行縮放:
node1->scale(1.51.51.5);
    scale的三個(gè)參數(shù)分別對應(yīng)x, y, z方向上的縮放比例,上面的例子將網(wǎng)格模型放大到1.5倍。

旋轉(zhuǎn)

    還可以對網(wǎng)格模型進(jìn)行旋轉(zhuǎn),其中yaw是Y軸的旋轉(zhuǎn),pitch是X軸的旋轉(zhuǎn),roll是Z軸的旋轉(zhuǎn):
node1->yaw(Degree(-90));
node1
->pitch(Degree(-90));
node1
->roll(Degree(-90));



posted on 2009-05-20 11:48 林公子 閱讀(1213) 評論(0)  編輯 收藏 引用 所屬分類: OGRE

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩在线播放| 亚洲国产精品一区二区www在线| 亚洲精品国久久99热| 欧美日韩在线视频一区二区| 在线观看91久久久久久| 亚洲美女av在线播放| 久久精品国产亚洲精品| 在线播放豆国产99亚洲| 欧美黑人多人双交| 免费欧美在线| 另类av导航| 欧美jizzhd精品欧美喷水 | 久久野战av| 亚洲日本一区二区三区| 欧美一区二区在线免费播放| 欧美日韩亚洲高清| 日韩视频永久免费观看| 噜噜噜久久亚洲精品国产品小说| 久久久久在线| 欧美精品日韩综合在线| 激情综合在线| 久久久精品2019中文字幕神马| 日韩午夜视频在线观看| 欧美日韩一区二区三区免费| 日韩视频免费大全中文字幕| 欧美激情1区2区3区| 欧美高清在线视频观看不卡| 亚洲国产精品一区二区www在线| 久久阴道视频| 亚洲人成网站精品片在线观看| 欧美激情免费观看| 日韩网站在线| 亚洲人成啪啪网站| 国产精品裸体一区二区三区| 亚洲伊人久久综合| 一个人看的www久久| 国产九九视频一区二区三区| 亚洲欧美日韩视频一区| 亚洲午夜av电影| 久久婷婷成人综合色| 亚洲人成免费| 亚洲人成人77777线观看| 欧美激情一区二区三区高清视频 | 亚洲电影专区| 欧美日韩中文字幕| 亚洲午夜精品久久久久久app| 亚洲精品久久久久久一区二区| 欧美在线三区| 亚洲美女在线一区| 99视频有精品| 国产婷婷色一区二区三区在线| 久久久999精品| 欧美黄色成人网| 91久久国产综合久久91精品网站 | 亚洲欧美经典视频| 亚洲人在线视频| 亚洲理论在线观看| 国产亚洲精品美女| 亚洲欧美制服另类日韩| 亚洲欧美日韩中文在线制服| 欧美手机在线视频| 欧美有码在线观看视频| 久久久中精品2020中文| 亚洲欧美文学| 久久久久综合网| 亚洲午夜女主播在线直播| 亚洲伊人色欲综合网| 悠悠资源网久久精品| 91久久线看在观草草青青| 国产精品欧美日韩一区| 亚洲激情成人网| 国产区欧美区日韩区| 欧美不卡视频一区发布| 国产欧美综合在线| 亚洲精品在线电影| 韩国福利一区| 亚洲欧美久久| 日韩一二三在线视频播| 性欧美18~19sex高清播放| 亚洲免费成人av电影| 久久亚洲精选| 午夜免费日韩视频| 欧美成人综合在线| 欧美激情亚洲激情| 国际精品欧美精品| 亚洲少妇最新在线视频| 国产一区白浆| 中文在线一区| 亚洲精品日本| 小黄鸭视频精品导航| 午夜在线a亚洲v天堂网2018| 欧美—级高清免费播放| 久久精品一区二区三区不卡牛牛| 国产精品久在线观看| 亚洲片国产一区一级在线观看| 在线成人中文字幕| 亚洲欧美国产另类| 欧美在线短视频| 欧美日韩精品在线观看| 亚洲国产成人av在线| 亚洲第一福利在线观看| 欧美一区二区大片| 欧美有码在线视频| 欧美日韩国产电影| 一区二区国产在线观看| 99精品热视频| 欧美黄色片免费观看| 日韩午夜av| 99精品久久免费看蜜臀剧情介绍| 久久这里只有| 91久久在线视频| 欧美成人精品一区二区| 欧美大香线蕉线伊人久久国产精品| 国产在线播精品第三| 老司机免费视频久久| 欧美成人精品在线观看| 久久激情五月婷婷| 欧美激情一区二区| 国产日产亚洲精品系列| 亚洲一区二区三区高清不卡| 亚洲图中文字幕| 国产精品户外野外| 亚洲永久在线| 欧美在线不卡| 欧美三级资源在线| 欧美一区二视频在线免费观看| 欧美在线三级| 国内在线观看一区二区三区| 开元免费观看欧美电视剧网站| 亚洲电影下载| 一区二区三区高清视频在线观看| 免费欧美高清视频| 一区二区三区精品国产| 欧美一级理论片| 狠狠噜噜久久| 欧美日韩一区在线| 性伦欧美刺激片在线观看| 另类综合日韩欧美亚洲| 亚洲夜间福利| 国产精品视频yy9099| 免费视频最近日韩| 午夜精品一区二区三区在线播放| 亚洲国产欧美国产综合一区| 亚洲欧美在线aaa| 亚洲黄色尤物视频| 国产日韩欧美高清免费| 欧美日韩精品免费观看| 久久久久久9| 亚洲一区在线观看视频 | 欧美一级大片在线观看| 亚洲精品精选| 精品成人在线视频| 国产精品一页| 欧美视频一区二区| 欧美福利视频一区| 久久―日本道色综合久久| 亚洲视频网在线直播| 亚洲日本激情| 欧美凹凸一区二区三区视频| 欧美在线视屏| 性色av一区二区三区| 一本一本久久a久久精品综合妖精| 激情偷拍久久| 国产午夜精品理论片a级大结局 | 亚洲韩国日本中文字幕| 国产一区导航| 国产欧美日韩一区二区三区在线观看| 欧美日韩一区二区三区| 欧美日韩的一区二区| 欧美国产精品专区| 欧美大片在线观看一区二区| 卡通动漫国产精品| 久久一二三国产| 久久视频免费观看| 久久久免费av| 久久婷婷亚洲| 狼狼综合久久久久综合网| 久久午夜精品一区二区| 久久久噜噜噜久久人人看| 久久蜜桃精品| 麻豆精品传媒视频| 欧美不卡高清| 欧美高清在线播放| 欧美久久久久| 欧美午夜在线一二页| 国产精品久久| 亚洲深夜激情| 男女精品网站| 欧美激情五月| 亚洲另类视频| 亚洲图片欧洲图片av| 亚洲一级免费视频| 欧美一区成人| 久久综合久久综合久久综合| 久久综合伊人77777蜜臀| 欧美v日韩v国产v| 欧美视频精品一区| 国产美女精品免费电影| 狠狠综合久久| 亚洲精品社区|