来说说wow魔兽地形
没有办法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魔兽地形相关推荐
- wow魔兽版 中国队VS乌兹别克
[4.寻求组队]谢亚龙:亚洲杯开组了,中国服务器组国家队啊,猪胱糊带队,上次参加世界杯的老人优先,来的速度了 [4.寻求组队]猪胱糊:孙继海,昭佳一,对了还有小董在吗?速度来我这登记啊,没海龟不行啊! ...
- 对WoW Shader文件的分析
Wow的渲染引擎是同时支持固定渲染管线渲染和Shader渲染管线渲染的. bls文件是wow的shader文件,分析它的实现可以学习引擎是怎样渲染的,以及如何做一个兼容固定管线和Shader管线的引擎 ...
- WOW - Terrain
<魔兽世界>地形研究 <魔兽世界>地形的惊艳之处,主要在于无缝连接的世界和精细的渲染效果,借助WoWmapview源码及能以线框模式查看D3D程序的分析工具,可以对其实现略窥一 ...
- 《魔兽世界》地形研究
<魔兽世界>地形的惊艳之处,主要在于无缝连接的世界和精细的渲染效果,借助 WoWmapview 源码及能以线框模式查看 D3D 程序的分析工具,可以对其实现略窥一二. 组织方式 <魔 ...
- 淘宝关键词API接口、1688、京东、拼多多平台商品信息获取采集
利用平台的文档中心和API测试工具,对接口进行测试.程序获取. 更多API调用展示以及获取Key和secret请移步 { "items": { " ...
- CryEngine3 - Anlysis Rendering
Introduction 这个帖可能在这儿发比较奇怪,不过我是一个信仰黑客精神的程序员,也非常支持KlayGE的研发,希望发一些我的原创资料,和作者,以及KlayGE的作用者交流,甚至有一些麻烦的问题 ...
- Cryengine渲染引擎剖析
ms,OpenGPU这些天又冷下去了, 转篇Napoleon314 大牛的分析,排版好乱,见谅,耐心读,这是个好东西,注意看他自己的实现,是个技术狂人啊,Ogre焕发次时代的光芒啊~~~努力 ---- ...
- 魔兽WOW外网搭建的新手教程
我们在接触魔兽世界架设的时候就会接触到很多的专业知识,这个对我们只做私服苏武器的新手来说就是一个非常困难的事情.现在我们就来介绍一些有关魔兽WOW外网搭建的教程,希望能够对新手们有着一定的帮助不过对 ...
- 魔兽地图编辑器插件YDWE的使用与基本设置3之地形面板、装饰物面板、单位面板、区域面板、镜头面板
魔兽地图编辑器插件YDWE的使用与基本设置3之地形面板.装饰物面板.单位面板.区域面板.镜头面板 1.打开地形工具面板 2.地形面板属性设置 自己在地图上试一下效果就会用了 3.修改地形设置 4.装饰 ...
最新文章
- 下一代数据网加速器成立,致力于建设智能时代的大数据基础设施
- git bash解决中文乱码问题
- crontab没有正确重定向导致磁盘inode节点空间满
- linux 网络地址
- AliOS-Things Visual studio code helloworld 入门
- (转)Enterprise Architect 7.0入门教程
- Core Servlets and JSP Volume I 读后感 Servlet(三)
- Android Studio 学生课程签到系统
- Solaris11操作命令汇总
- 数据包络分析-两阶段网络DEA(two stage network)
- 如何在 Word 的方框中打勾 √ ?☑ ☒
- spring使用之旅 ---- bean的装配
- Word 通过尾注插入参考文献
- 南邮计算机学院考研论坛,考南邮的心得,但愿对大家有所帮助!!!
- FMI飞马网 |【线上直播】持续集成在京东研发的落地及应用
- typora免费版,无需破解,安装直接使用
- Python深度学习与机器视觉(一)
- ios开发聊天气泡实现
- 地铁大数据挖掘之数据预处理——从原始一卡通数据提取城市地铁客流(二)
- Docker 出了个新玩意:软件物料清单
热门文章
- GFW 三定律,太有创意了,太真实了,胆太大,竟敢光天化日下说实话!
- springBoot启动失败Caused by: java.lang.ClassNotFoundException: org.springframework.http.MediaType
- 金色的SAP PO管理平台(永久保存SAP PO中间件消息之六)
- html电子邮件连接,html如何创建电子邮件链接
- webstorm 一次Git使用很卡的处理记录
- python 空集_Python——集(set)
- oracle ipac,Oracle VM VritualBOX安装Centos详解与注意事项
- 服务器IIS架设网站无法增加log文件
- 海康威视rtsp转rtmp
- thymeleaf引用图片_thymeleaf显示图片(转)