• [转载]我也来分析魔兽世界--场景组织


    转自: http://www.sineysoft.com/post/52

    没有办法WOW太经典,当自己碰到问题的时候再回头研究wow发现wow尽然没有问题,暴雪的游戏制作经验让wow一开始就设计的如此讲究,不得不感叹国内游戏同世界设计方面的差异。

    由于没有wow的源代码,所有的分析想法都来自与wowmapview这个开源的wow地图察看器,wowmapview的代码写的很凌乱,但很容易理解,好了,我们开始吧!Gogo

    wow场景是由一系列MapTile组成,这些MapTile的大小是1600/3 ≈ 533.33m,而每个MapTile又是由 16×16 个MapChunk组成,由此可以计算出每个MapChunk≈33.33m,如图:

    在wow中,一个MapTile是有由一个adt文件描述。

    比如WorldMapsAhnQirajAhnQiraj_29_48.adt文件就描述在xz(29,48)位置的MapTile,每个 MapTile都包含了该tile内使用的贴图(引用外部)、模型(引用外部)、wmo(MapObject)、模型实例、wmo实例,所谓模型实例就是 相同模型在tile内不同摆放位置、大小、角度的说明信息,在wow引擎中的术语是doodad,即可以随意摆放的小东西,wmo实例类似。为了节省文件 尺寸,模式实例、wmo实例是通过index模型、wmo的方式保存的,同顶点索引类似。

    每个MapChunk又由9×9+8×8个地形顶点高度,法线,若干贴图层(一般为4层),水面,Alpha贴图层(用于控制地表贴图的混合比例,一般为3张,尺寸64×64)和一层shadow map(64×64)组成。如图,由此可推算出wow的地面精度≈2m

    Wow的地表是非常精细的,这与它使用了alpha贴图控制地表混合比例有关,而一般的引擎则把地表贴图的混合比例放在地表顶点中记录,这样地表的精度将同顶点密度保持一致。

    Wow使用固定方向光照,所以可以使用shadow map来模拟树、房子等在地表透射的阴影,shadow map的尺寸也是64×64,可见阴影的精度也是非常高的。

    这样的地形顶点分布是wow在最高地表精度下的高度顶点布局,当相机原理MapChunk时,这个高度顶点的布局可能是这样:

    此时,地表的精度≈4m。

    Wow的地表是支持挖洞的,有意思的是为了节省空间,其标示挖洞的信息数据就是一个int,通过使用位运算来得到一个4×4精度的挖洞信息,我们不妨把这种4×4的洞叫做holeChunk,每个holeChunk支持4种状态来标示其内部2×2的洞分布状况,由此可见wow在数据结构方面已经发挥 到了极致:对于需要精密表现的地表好不吝啬的使用64×64混合贴图,而对于hole这种只需要粗略(一半还不使用的东西)的记录一个int。

  • 相关阅读:
    SAP的PI日志查看工具
    微信小程序调用SAP发布的REST显示数据列表
    SAP发布REST/HTTP接口
    SAP的JSON没有双引号问题
    SAP扩展库位
    函数使用十一:BAPI_BANK_CREATE
    竟然有人在群里谈交钱培训PI。。。。等哥哥有时间,断了你们的财路
    FPM十一:点击POPUP显示明细
    WDA基础十八:Select option配置
    SAP常见查询组合
  • 原文地址:https://www.cnblogs.com/shines77/p/3414898.html
Copyright © 2020-2023  润新知