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

Code Knight

Programming is so cool
隨筆 - 52, 文章 - 0, 評論 - 14, 引用 - 0
數(shù)據(jù)加載中……

[轉(zhuǎn)]OGRE根據(jù)高度圖創(chuàng)建Terrain地形流程分析

OGRE可以通過兩個接口來生成地形,分別是void TerrainSceneManager::setWorldGeometry( const String& filename )以及void TerrainSceneManager::setWorldGeometry(DataStreamPtr& stream, const String& typeName ),兩者的根本區(qū)別就是一個是傳遞地形信息文件名一個是傳遞地形信息數(shù)據(jù)流,設(shè)計兩個接口的目的是可以讓用戶使用自己的地形信息配置文件,而不必局限于 OGRE定義的地形信息配置文件格式。在分析流程之前,先說明一點,為了提高渲染性能以及地形查找性能,OGRE把整個地形分成若干個地形頁,每個地形頁又分成了多個地形小塊,到最后會把地形頁及地形小塊tile掛接到場景節(jié)點上。以下是生成地形的主要流程:

一:清除地形分級索引緩沖及地形分頁,根據(jù)地形信息數(shù)據(jù)流加載地形信息配置文件,

void TerrainSceneManager::loadConfig(DataStreamPtr& stream),其先將地形配置信息從數(shù)據(jù)流中逐一讀出到map中,然后通過void TerrainSceneManager::selectPageSource(const String& typeName,  TerrainPageSourceOptionList& optionList)設(shè)置地形數(shù)據(jù)源(目前只有高度圖數(shù)據(jù)源)。在地形信息配置文件中可以配置多個地形數(shù)據(jù)源,然后根據(jù)一種數(shù)據(jù)源類型生成地形,參數(shù) typeName就用來指定數(shù)據(jù)源類型,目前就是HeightMap,找到指定的數(shù)據(jù)源后,對指定的數(shù)據(jù)源進(jìn)行初始化,

 void HeightmapTerrainPageSource::initialise(TerrainSceneManager* tsm,  ushort tileSize, ushort pageSize, bool asyncLoading, TerrainPageSourceOptionList& optionList)。初始化的過程主要是調(diào)用void HeightmapTerrainPageSource::loadHeightmap(void)將高度圖灰度圖像數(shù)據(jù)加載到內(nèi)存中,如果是Raw數(shù)據(jù),就加載到mRawData中,否則加載到mImage中。整個加載過程其實完成了兩大工作,首先加載地形配置信息,然后加載高度圖數(shù)據(jù)。

二:初始化分級索引緩沖,void TerrainSceneManager::initLevelIndexes();

三:void OctreeSceneManager::resize( const AxisAlignedBox &box )

四:設(shè)置地形材質(zhì),void TerrainSceneManager::setupTerrainMaterial(void);

五:設(shè)置地形分頁, void TerrainSceneManager::setupTerrainPages(void)

首先創(chuàng)建一個名為Terrain的場景根節(jié)點的子節(jié)點

mTerrainRoot = getRootSceneNode() -> createChildSceneNode( "Terrain" );

然后初始化TerrainPage2D mTerrainPages;

最后調(diào)用 void HeightmapTerrainPageSource::requestPage(ushort x, ushort y)requestPage只支持一個Page,首先將圖像數(shù)據(jù)進(jìn)行縮放

然后調(diào)用 “TerrainPageSource::firePageConstructed()”通知Listener;然后調(diào)用“TerrainPage* TerrainPageSource::buildPage(Real*heightData, const MaterialPtr& pMaterial)”創(chuàng)建一個新的TerrainPage對象。

buildPage()是一個比較核心的函數(shù)。它首先構(gòu)造一個 TerrainPage對象,然后創(chuàng)建一個用于容納該TerrainPage對象的場景節(jié)點:“page->pageSceneNode = mSceneManager->createSceneNode(name);”,然后根據(jù)對地形的分割,循環(huán)創(chuàng)建子SceneNode,并且創(chuàng)建子場景節(jié)點對應(yīng)的可渲染體TerrainRenderable,將該可渲染體attach到這個子節(jié)點上。通過 “TerrainRenderable::initialise()”來創(chuàng)建頂點數(shù)據(jù)、渲染方式等。

然后調(diào)用void TerrainSceneManager::attachPage(ushort pageX, ushort pageZ, TerrainPage* page)加入到mTerrainPages中;

然后在attachPage中調(diào)用“mTerrainRoot->addChild(page->pageSceneNode);”加入到SceneGraph中。

注:當(dāng)前只支持一個Page,該分頁被掛接到一個稱謂Terrain的場景節(jié)點上,該場景節(jié)點下面又創(chuàng)建了很多子場景節(jié)點,每一個子場景節(jié)點對應(yīng)一個tile,也就是一個獨立的可渲染體TerrainRenderable

posted on 2010-02-24 21:30 Code Knight 閱讀(1028) 評論(1)  編輯 收藏 引用 所屬分類: OGRE

評論

# re: [轉(zhuǎn)]OGRE根據(jù)高度圖創(chuàng)建Terrain地形流程分析  回復(fù)  更多評論   

講的很不錯,剛開始學(xué)OGRE 地形。
2011-03-14 19:17 | 307110384
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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成人_看片免费不卡 | 一区二区三区**美女毛片| 欧美第一黄色网| 久久男人av资源网站| 国产午夜精品全部视频播放 | 国产日韩欧美91| 国产区二精品视| 午夜精品在线观看| 麻豆成人综合网| 久久久国产亚洲精品| 国产一区二区三区精品久久久 | 欧美成人午夜视频| 欧美日韩在线电影| 国产色婷婷国产综合在线理论片a| 亚洲影院色无极综合| 久久黄色级2电影| 久久精品亚洲热| 亚洲高清网站| 欧美主播一区二区三区| 午夜一区二区三区不卡视频| 美女脱光内衣内裤视频久久网站| 久久漫画官网| 欧美一区午夜视频在线观看| 亚洲第一黄网| 亚洲福利视频一区| 欧美精品福利在线| 激情久久综艺| 欧美电影免费观看大全| 欧美成人精品在线观看| 亚洲一区bb| 欧美有码视频| 亚洲国产电影| 久久欧美中文字幕| 亚洲天堂网在线观看| 黄色一区二区三区四区| 西西裸体人体做爰大胆久久久| 亚洲国产精品激情在线观看| 欧美日韩p片| 亚洲人午夜精品免费| 99av国产精品欲麻豆| 国产日韩在线视频| 91久久国产精品91久久性色| 欧美在线视频观看| 亚洲免费久久| 亚洲欧洲综合另类在线| 欧美99久久| 亚洲欧美日韩一区二区三区在线| 另类激情亚洲| 久久久久久黄| 在线观看成人av| 乱中年女人伦av一区二区| 欧美激情亚洲激情| 亚洲免费精彩视频| 欧美一区二区三区免费视| 国产日韩在线看片| 久久精品国产精品亚洲精品| 欧美大片一区| 久热综合在线亚洲精品| 国产精品激情av在线播放| 亚洲午夜激情免费视频| 久久嫩草精品久久久精品一| 亚洲一区二区三区午夜| 久久久久久久999| 亚洲欧美在线看| 欧美日韩精品一区视频| 欧美福利一区二区| 狠狠综合久久| 亚洲国产精品久久久久久女王| 国产精品美女午夜av| 亚洲片在线观看| 亚洲人体一区| 免费亚洲一区| 亚洲激情综合| 久久色在线观看| 亚洲精品一区二区三区婷婷月 | 久久青草久久| 国产精品日韩在线一区| 亚洲另类自拍| 亚洲毛片在线| 欧美精品一区二区三区在线看午夜 | 欧美一区综合| 久久超碰97中文字幕| 久久精品国产一区二区三区| 亚洲午夜在线| 国产精品大片wwwwww| 99国产精品99久久久久久| 国产毛片一区二区| 宅男噜噜噜66一区二区| 亚洲一区二区三区成人在线视频精品| 欧美激情一区二区三级高清视频| 欧美激情综合| 夜久久久久久| 欧美午夜精品电影| 午夜激情综合网| 久久先锋资源| 亚洲国产欧美一区二区三区同亚洲| 久久偷看各类wc女厕嘘嘘偷窃| 欧美国产日韩一区二区三区| 亚洲午夜一区二区| 狠狠网亚洲精品| 欧美日韩视频在线一区二区| 欧美在线国产| 久久久久网址| 夜夜精品视频| 永久555www成人免费| 久久精品盗摄| 在线亚洲成人| 亚洲综合视频1区| 激情五月***国产精品| 欧美日韩国产成人在线91| 最新日韩精品| 亚洲精品四区| 韩国免费一区| 老司机精品久久| 亚洲欧美视频一区| 久久亚洲二区| 伊人成人在线视频| 六月丁香综合| 亚洲国产精品va在线观看黑人| 欧美一区二区久久久| 一区二区三区.www| 国产精品成人播放| 女同一区二区| 99riav国产精品| 欧美激情一区二区三区全黄| 久久久www成人免费毛片麻豆| 国内在线观看一区二区三区| 久久精品夜色噜噜亚洲a∨| 免费日韩av片| 久久久一区二区三区| 午夜亚洲一区| 亚洲综合另类| 亚洲一级在线观看| 一区二区高清视频在线观看| 亚洲精品资源| 国产麻豆9l精品三级站| 国产精品白丝黑袜喷水久久久| 欧美激情aⅴ一区二区三区 | 亚洲激情黄色| 亚洲国产精品一区二区久| 亚洲精品一区在线| 亚洲激情成人在线| 亚洲精品123区| 亚洲激情网站| 日韩亚洲视频| 狠狠v欧美v日韩v亚洲ⅴ| 国产日韩精品久久| 欧美成人精品激情在线观看| 免费在线一区二区| 香蕉乱码成人久久天堂爱免费| 一区二区福利| 亚洲综合精品自拍| 亚洲国产婷婷香蕉久久久久久| 亚洲国产成人久久综合| 亚洲精选中文字幕| 亚洲一二三级电影| 91久久精品久久国产性色也91| 91久久夜色精品国产网站| 亚洲欧洲一区二区三区久久| 久久久久久免费| 欧美 亚欧 日韩视频在线| 亚洲国产精品视频| 夜夜嗨av一区二区三区网站四季av| 在线视频日韩| 亚洲精品一区二区三区不| 蜜桃视频一区| 久久国产精品毛片| 欧美激情第4页| 久久在线91| 日韩视频免费观看高清在线视频| 亚洲午夜小视频| 一区二区三区精品在线| 欧美亚洲专区| 欧美高清在线一区| 国产精品夜夜夜一区二区三区尤| 国内精品免费在线观看| 亚洲美女色禁图| 久久精品女人| 99在线热播精品免费| 久久精品视频在线看| 欧美日韩免费观看中文| 狠狠色综合网| 亚洲欧美精品一区| 亚洲在线视频观看| 老司机成人网| 亚洲在线一区二区| 欧美成人国产一区二区| 国产女人精品视频| 91久久精品一区| 久久精品人人爽| 99国产精品99久久久久久| 久久久久久久久岛国免费| 欧美午夜电影一区| 最新国产精品拍自在线播放| 欧美亚洲视频在线看网址| 久久99伊人| 浪潮色综合久久天堂|