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

            我也來(lái)分析魔獸世界-場(chǎng)景組織(轉(zhuǎn))

            沒(méi)有辦法WOW太經(jīng)典,當(dāng)自己碰到問(wèn)題的時(shí)候再回頭研究wow發(fā)現(xiàn)wow盡然沒(méi)有問(wèn)題,暴雪的游戲制作經(jīng)驗(yàn)讓wow一開(kāi)始就設(shè)計(jì)的如此講究,不得不感嘆國(guó)內(nèi)游戲同世界設(shè)計(jì)方面的差異。

            由于沒(méi)有wow的源代碼,所有的分析想法都來(lái)自與wowmapview這個(gè)開(kāi)源的wow地圖察看器,wowmapview的代碼寫(xiě)的很凌亂,但很容易理解,好了,我們開(kāi)始吧!Gogo

            wow場(chǎng)景是由一系列MapTile組成,這些MapTile的大小是1600/3 ≈ 533.33m,而每個(gè)MapTile又是由 16x16 個(gè)MapChunk組成,由此可以計(jì)算出每個(gè)MapChunk≈33.33m,如圖:

            在wow中,一個(gè)MapTile是有由一個(gè)adt文件描述。

            比如World\Maps\AhnQiraj\AhnQiraj_29_48.adt文件就描述在xz(29,48)位置的MapTile,每個(gè)MapTile都包含了該tile內(nèi)使用的貼圖(引用外部)、模型(引用外部)、wmo(MapObject)、模型實(shí)例、wmo實(shí)例,所謂模型實(shí)例就是相同模型在tile內(nèi)不同擺放位置、大小、角度的說(shuō)明信息,在wow引擎中的術(shù)語(yǔ)是doodad,即可以隨意擺放的小東西,wmo實(shí)例類似。為了節(jié)省文件尺寸,模式實(shí)例、wmo實(shí)例是通過(guò)index模型、wmo的方式保存的,同頂點(diǎn)索引類似。

            每個(gè)MapChunk又由9x9+8x8個(gè)地形頂點(diǎn)高度,法線,若干貼圖層(一般為4層),水面,Alpha貼圖層(用于控制地表貼圖的混合比例,一般為3張,尺寸64x64)和一層shadow map(64x64)組成。如圖,由此可推算出wow的地面精度≈2m

            Wow的地表是非常精細(xì)的,這與它使用了alpha貼圖控制地表混合比例有關(guān),而一般的引擎則把地表貼圖的混合比例放在地表頂點(diǎn)中記錄,這樣地表的精度將同頂點(diǎn)密度保持一致。

            Wow使用固定方向光照,所以可以使用shadow map來(lái)模擬樹(shù)、房子等在地表透射的陰影,shadow map的尺寸也是64x64,可見(jiàn)陰影的精度也是非常高的。

            這樣的地形頂點(diǎn)分布是wow在最高地表精度下的高度頂點(diǎn)布局,當(dāng)相機(jī)遠(yuǎn)離MapChunk時(shí),這個(gè)高度頂點(diǎn)的布局可能是這樣:

            此時(shí),地表的精度≈4m。

            Wow的地表是支持挖洞的,有意思的是為了節(jié)省空間,其標(biāo)示挖洞的信息數(shù)據(jù)就是一個(gè)int,通過(guò)使用位運(yùn)算來(lái)得到一個(gè)4x4精度的挖洞信息,我們不放把這種4x4的洞叫做holeChunk,每個(gè)holeChunk支持4種狀態(tài)來(lái)標(biāo)示其內(nèi)部2x2的洞分布狀況,由此可見(jiàn)wow在數(shù)據(jù)結(jié)構(gòu)方面已經(jīng)發(fā)揮到了極致:對(duì)于需要精密表現(xiàn)的地表好不吝嗇的使用64x64混合貼圖,而對(duì)于hole這種只需要粗略(一半還不使用的東西)的記錄一個(gè)int。

            posted on 2008-12-23 05:46 RedLight 閱讀(622) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 它不是一個(gè)人(WOW研究專區(qū))

            <2008年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導(dǎo)航

            統(tǒng)計(jì)

            公告


            Name: Galen
            QQ: 88104725

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            相冊(cè)

            My Friend

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            伊色综合久久之综合久久| 久久99精品久久久久久久不卡 | 久久99精品国产99久久| 国产国产成人精品久久| 久久精品国产精品青草| 欧美亚洲国产精品久久| 久久99国产精品久久久| 四虎国产精品成人免费久久| 久久精品国产亚洲77777| 无码任你躁久久久久久久| 色综合久久88色综合天天| 久久国产欧美日韩精品| 久久久久国产一区二区三区| 久久婷婷五月综合色奶水99啪| 国内精品久久久久久中文字幕| 人妻丰满AV无码久久不卡| 亚洲欧洲久久av| 久久av免费天堂小草播放| 久久青青草原综合伊人| 久久精品蜜芽亚洲国产AV| 久久久久久伊人高潮影院| 久久综合精品国产一区二区三区 | 久久伊人五月天论坛| 久久天堂电影网| 99精品国产在热久久| 久久99久国产麻精品66| 亚洲国产一成久久精品国产成人综合| 久久久久久免费一区二区三区| 伊人久久综合无码成人网| 亚洲va久久久久| 香蕉久久永久视频| 一级a性色生活片久久无少妇一级婬片免费放| 久久天天躁狠狠躁夜夜96流白浆| 国产成人精品综合久久久| 一本色道久久88综合日韩精品| 亚洲&#228;v永久无码精品天堂久久 | 亚洲午夜无码久久久久小说| 四虎影视久久久免费| 少妇熟女久久综合网色欲| 久久亚洲精品国产亚洲老地址| 久久狠狠爱亚洲综合影院|