• <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>

            Ogre中的地形

            使用terrain.cfg
            WorldTexture=terrain_texture.jpg? //地形紋理
            DetailTexture=terrain_detail.jpg? //細(xì)節(jié)紋理
            DetailTile=3????????????????????? //細(xì)節(jié)紋理在一個(gè)地形小塊中的平鋪數(shù)
            PageSource=Heightmap????????????? //高度圖數(shù)據(jù)源
            Heightmap.image=terrain.png?????? //高度圖名稱,符合2^n+1
            PageSize=513????????????????????? //高度圖大小
            TileSize=65?????????????????????? //地形小塊大小
            MaxPixelError=3?????????????????? //決定使用層次細(xì)節(jié)時(shí)充許誤差
            PageWorldX=1500?????????????????? //地形在世界中的范圍x方向
            PageWorldZ=1500?????????????????? //z方向
            MaxHeight=100???????????????????? //世界中地形最大映射高度
            MaxMipMapLevel=5????????????????? //層次細(xì)節(jié)上限
            #VertexNormals=yes??????????????? //在緩沖中計(jì)算頂點(diǎn)法線,計(jì)算機(jī)光照或GPU程序用到時(shí)打開
            #VertexColors=yes         //在緩沖中設(shè)置頂點(diǎn)顏色,假如有GPU程序需要時(shí)打開
            #UseTriStrips=yes???????????????? //對(duì)于現(xiàn)在的硬件,建議關(guān)掉
            VertexProgramMorph=yes   ????? //使用頂點(diǎn)程序進(jìn)行LOD融合處理
            LODMorphStart=0.2???????????????? //LOD融合開始點(diǎn):高,低LOD之間距離之比

            下列參數(shù)用于提供自己的著色程序時(shí)使用,這會(huì)提供自己定義的material,那么先前定義的
            WorldTexture 與 DetailTexture的設(shè)置不再用到,多余的了。

            MorphLODFactorParamName=morphFactor 
            //假設(shè)VertexProgramMorph被設(shè)為yes,定制的material中包括一個(gè)高級(jí)頂點(diǎn)程序。它指定了一個(gè)頂點(diǎn)
            //程序的參數(shù)名,這個(gè)參數(shù)用于融合LOD,參數(shù)值從0-1,0表示不調(diào)整,1表示完全調(diào)整到下一級(jí)LOD

            MorphLODFactorParamIndex???????? //用于materail中包含低級(jí)頂點(diǎn)程序的情況,意義同上
            CustomMaterialName?????????????? //指定的materail名字

            上述配置文件定義了基于高度圖的地形。這些參數(shù)定義可概括為兩類:Ogre使用第一類從高度圖產(chǎn)生地形
            mesh與材質(zhì)。第二類是定制材質(zhì)與GPU頂點(diǎn)程序,這可以代替ogre自動(dòng)產(chǎn)生的著色程序。
            另外的說明:
            TerrainScenceManager會(huì)把高度圖分為向個(gè)pages,每個(gè)page由幾個(gè)tiles組成.而它們也不過是個(gè)方便的名字,
            它們都定義了在產(chǎn)生的mesh中一組構(gòu)成正方形的頂點(diǎn)集。
            WorldTexture定義的紋理不必與目標(biāo)地形一樣大。
            PageWorldX,PageWorldZ可以縮放世界中的地形。
            MaxHeight 在Y方向縮放地形。
            DetailTexture 只使用一個(gè)紋理,如使用多層紋理,應(yīng)該使用自定義materail。

            從程序加載地形
            setWorldGeometry()有重載形式,一種用于加載配置文件,另一種我們可在程序中使用,以
            達(dá)到手工加載的功能。這里,SceneData被 typedef 為std:map,它存儲(chǔ)了如我們?cè)趖errain.cfg
            中看到那些值對(duì)。假設(shè)我們已經(jīng)從某個(gè)二進(jìn)制文件讀入我們想要的內(nèi)容到SceneData中。我們要做
            的就是把讀入的內(nèi)容轉(zhuǎn)換成setWorldGeometry()需要的類型。先看一下函數(shù)原型:
            Ogre::SceneManager::setWorldGeometry (? DataStreamPtr &? stream,?
            ? const String &? typeName = StringUtil::BLANK
            ?)?
            DataStreamPtr是一個(gè)智能指針,因此從局部變量中返回是安全的,程序相當(dāng)直觀,不再多說了。

            Ogre::DataStreamPtr Process_Loader::getSceneDataStream(SceneData &data) {
            // create what looks like a config file for the edification of Ogre
            std::string mem;
            SceneData::iterator it;
            for (it=data.begin(); it!=data.end(); it++) {
            mem += it->first;
            mem += "=";
            mem += it->second;
            mem += "\n";
            }
            void *pMem = (void *)new unsigned char[mem.length()+1];
            memset(pMem, 0, mem.length()+1);
            memcpy(pMem, mem.c_str(), mem.length() + 1);
            // stuff this into a MemoryDataStream
            Ogre::DataStreamPtr pStr(new Ogre::MemoryDataStream(pMem, mem.length() + 1));
            return pStr;
            }
            // and then elsewhere in the world loader:
            Ogre::DataStreamPtr pStr = getSceneDataStream(terrainDef);
            m_sceneMgr->setWorldGeometry(pStr);

            posted on 2007-03-09 17:25 清源游民 閱讀(2032) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OGRE
            <2006年11月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            留言簿(35)

            隨筆分類(78)

            隨筆檔案(74)

            文章檔案(5)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产精自产拍久久久久久蜜| 亚洲日韩欧美一区久久久久我| 欧美一区二区三区久久综合| 亚洲va久久久噜噜噜久久男同| 久久夜色精品国产噜噜噜亚洲AV| 亚洲成色WWW久久网站| 韩国三级大全久久网站| 久久久久久无码国产精品中文字幕 | 久久午夜夜伦鲁鲁片免费无码影视| 久久只有这里有精品4| 久久亚洲国产成人精品性色| 国产精品美女久久久久AV福利 | 国内精品久久久久影院优| 国产AV影片久久久久久| 亚洲精品无码久久久影院相关影片| 热久久这里只有精品| 亚洲国产精品无码久久一区二区| 色成年激情久久综合| 中文无码久久精品| 欧美日韩精品久久久久| 国产欧美一区二区久久| 久久99精品国产麻豆宅宅| 91久久国产视频| 国产精品一区二区久久| 精品久久久噜噜噜久久久| 久久精品视频一| 国产精品成人久久久| 久久播电影网| 九九热久久免费视频| 青青草原综合久久大伊人精品| 嫩草伊人久久精品少妇AV| 精品国产乱码久久久久久人妻| 久久人人超碰精品CAOPOREN| 66精品综合久久久久久久| 999久久久免费精品国产| 一本色综合网久久| 久久久久亚洲AV片无码下载蜜桃 | 久久久久久久亚洲Av无码| 久久精品国产99久久无毒不卡| 久久午夜羞羞影院免费观看| 久久亚洲国产成人精品性色|