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

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

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

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

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

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

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

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

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

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

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

来说说wow魔兽地形相关推荐

  1. wow魔兽版 中国队VS乌兹别克

    [4.寻求组队]谢亚龙:亚洲杯开组了,中国服务器组国家队啊,猪胱糊带队,上次参加世界杯的老人优先,来的速度了 [4.寻求组队]猪胱糊:孙继海,昭佳一,对了还有小董在吗?速度来我这登记啊,没海龟不行啊! ...

  2. 对WoW Shader文件的分析

    Wow的渲染引擎是同时支持固定渲染管线渲染和Shader渲染管线渲染的. bls文件是wow的shader文件,分析它的实现可以学习引擎是怎样渲染的,以及如何做一个兼容固定管线和Shader管线的引擎 ...

  3. WOW - Terrain

    <魔兽世界>地形研究 <魔兽世界>地形的惊艳之处,主要在于无缝连接的世界和精细的渲染效果,借助WoWmapview源码及能以线框模式查看D3D程序的分析工具,可以对其实现略窥一 ...

  4. 《魔兽世界》地形研究

    <魔兽世界>地形的惊艳之处,主要在于无缝连接的世界和精细的渲染效果,借助 WoWmapview 源码及能以线框模式查看 D3D 程序的分析工具,可以对其实现略窥一二. 组织方式 <魔 ...

  5. 淘宝关键词API接口、1688、京东、拼多多平台商品信息获取采集

    利用平台的文档中心和API测试工具,对接口进行测试.程序获取. 更多API调用展示以及获取Key和secret请移步 {     "items": {         " ...

  6. CryEngine3 - Anlysis Rendering

    Introduction 这个帖可能在这儿发比较奇怪,不过我是一个信仰黑客精神的程序员,也非常支持KlayGE的研发,希望发一些我的原创资料,和作者,以及KlayGE的作用者交流,甚至有一些麻烦的问题 ...

  7. Cryengine渲染引擎剖析

    ms,OpenGPU这些天又冷下去了, 转篇Napoleon314 大牛的分析,排版好乱,见谅,耐心读,这是个好东西,注意看他自己的实现,是个技术狂人啊,Ogre焕发次时代的光芒啊~~~努力 ---- ...

  8. 魔兽WOW外网搭建的新手教程

     我们在接触魔兽世界架设的时候就会接触到很多的专业知识,这个对我们只做私服苏武器的新手来说就是一个非常困难的事情.现在我们就来介绍一些有关魔兽WOW外网搭建的教程,希望能够对新手们有着一定的帮助不过对 ...

  9. 魔兽地图编辑器插件YDWE的使用与基本设置3之地形面板、装饰物面板、单位面板、区域面板、镜头面板

    魔兽地图编辑器插件YDWE的使用与基本设置3之地形面板.装饰物面板.单位面板.区域面板.镜头面板 1.打开地形工具面板 2.地形面板属性设置 自己在地图上试一下效果就会用了 3.修改地形设置 4.装饰 ...

最新文章

  1. 下一代数据网加速器成立,致力于建设智能时代的大数据基础设施
  2. git bash解决中文乱码问题
  3. crontab没有正确重定向导致磁盘inode节点空间满
  4. linux 网络地址
  5. AliOS-Things Visual studio code helloworld 入门
  6. (转)Enterprise Architect 7.0入门教程
  7. Core Servlets and JSP Volume I 读后感 Servlet(三)
  8. Android Studio 学生课程签到系统
  9. Solaris11操作命令汇总
  10. 数据包络分析-两阶段网络DEA(two stage network)
  11. 如何在 Word 的方框中打勾 √ ?☑ ☒
  12. spring使用之旅 ---- bean的装配
  13. Word 通过尾注插入参考文献
  14. 南邮计算机学院考研论坛,考南邮的心得,但愿对大家有所帮助!!!
  15. FMI飞马网 |【线上直播】持续集成在京东研发的落地及应用
  16. typora免费版,无需破解,安装直接使用
  17. Python深度学习与机器视觉(一)
  18. ios开发聊天气泡实现
  19. 地铁大数据挖掘之数据预处理——从原始一卡通数据提取城市地铁客流(二)
  20. Docker 出了个新玩意:软件物料清单

热门文章

  1. GFW 三定律,太有创意了,太真实了,胆太大,竟敢光天化日下说实话!
  2. springBoot启动失败Caused by: java.lang.ClassNotFoundException: org.springframework.http.MediaType
  3. 金色的SAP PO管理平台(永久保存SAP PO中间件消息之六)
  4. html电子邮件连接,html如何创建电子邮件链接
  5. webstorm 一次Git使用很卡的处理记录
  6. python 空集_Python——集(set)
  7. oracle ipac,Oracle VM VritualBOX安装Centos详解与注意事项
  8. 服务器IIS架设网站无法增加log文件
  9. 海康威视rtsp转rtmp
  10. thymeleaf引用图片_thymeleaf显示图片(转)