作者 鸣·铭
    如需转载,请注明出自www.MobileGameBase.com,谢谢!
    天龙八部的地表做法与9年前的红警2的极为类似。都是由很多个格子(Title)组成,每个格子四个点,两个三角形。
下面我先给出天龙八部GridInfo文件格式,然后再简要介绍一下实现方式。
[GridInfo file format]
DWORD    nVersion    版本号
int    nWidth         地表宽度(横向格子数)
int    nHeight        地表高度(纵向格子数)

如果版本号大于0x00100002则后面跟一个bool型数据,否则不存在这个bool型数据
bool    bLarge        GridInfo是否为7字节类型

如果bLarge存在并且值为1,则其后跟的是7字节版本否则为5字节版本
[GridInfo 5字节版本]
BYTE    nFirstLayer    该值即为pixelmap的索引(第几个pixelmap)
BYTE    nFirstLayerOp    对nFirstLayer的操作,可能取值如下:
    0 不变
    1 水平翻转
    2 垂直翻转
    4 向左旋转90度
    8 对角线镜像
    注意:这些值之间是可以取和的,比如9=1+8说明图片需要水平翻转和对角线镜像

BYTE    nSecondLayer    该值为pixelmap的索引
    天龙八部的地表最多可以两层融合,说白了就是每个点里有两层UV,这里为第二层pixelmap的索引
BYTE    nSecondLayerOp    对nSecondLayer的操作,取值同nFirstLayerOp

BYTE    IndexOrder    对格子的三角形的操作,可能取值如下
    0正常三角形索引
    1不同于正常的三角形索引
    如下图,该值主要用在水池啊一类的地方,如果三角形索引不变的话,水池四个角中的两个角就不对了。

[GridInfo 7字节版本]
short    nFirstLayer
    读取后需交换高8位与低8位的值,需做如下操作
    nFirstLayer = (nFirstLayer<<8)|(nFirstLayer>>8)
BYTE    nFirstLayerOp
short    nSecondLayer
    同nFirstLayer,需交换高8位与低8位的值
BYTE    nSecondLayerOp
BYTE    IndexOrder

实现方式:
想象一下如果你设好每个点的位置,UV,法线,材质,整个场景不就出来了嘛。
现在的问题是如何操作这些VertexData和IndexData,其实Ogre本身就有大量的类直接这两者,比如Mesh,StaticGeometry,ManualObject等等。不过前阵子突然发现有位朋友写了个魔兽3地形的例子,使用Ogre实现的,写得非常好,呵呵,我就借花献佛推荐大家看这个例子吧,相信你应该有点感觉:)

btw:据说《成吉思汗OL》是用Ogre做的,而且还是在《天龙八部OL》的基础上改的,场景方面做的更好。因为成吉思汗的制作人就是原来天龙八部的制作人,呵呵,国内游戏圈这么小,消息渠道我多少有一点。有兴趣的朋友研究下吧:)

Ogre 天龙八部 GridInfo文件格式说明(正确版)相关推荐

  1. (转)Ogre 天龙八部 GridInfo文件格式说明(正确版)

        天龙八部的地表做法与9年前的红警2的极为类似.都是由很多个格子(Title)组成,每个格子四个点,两个三角形. 下面我先给出天龙八部GridInfo文件格式,然后再简要介绍一下实现方式. [G ...

  2. Ogre 天龙八部地形 Heightmap(高度图)+GridInfo(地表信息)初步结果

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 刚研究出 ...

  3. 天龙八部GridInfo读取源码

    转自:http://www.cppblog.com/mybios/archive/2008/03/09/44046.aspx 天龙八部GridInfo文件的格式已经有人公布了,在这里:http://w ...

  4. “PE文件格式”1.9版 完整译文

    标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006-02-28,13:32 链 接: http://bbs.pediy.com ...

  5. PE文件格式”1.9版 完整译文(附注释)

    没看完,先贴上来,以再看! 标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者:ah007 时 间: 2006-02-28,13:32 链 接: http:// ...

  6. 【翻译】“PE文件格式”1.9版 完整译文(附注释)

    标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006-02-28,13:32:12 链 接: http://bbs.pediy. ...

  7. PE文件格式”1.9版 完整译文

    2019独角兽企业重金招聘Python工程师标准>>> PE文件格式系列译文之一---- [翻译]"PE文件格式"1.9版 完整译文(附注释) ========= ...

  8. “PE文件格式”1.9版 完整译文(附注释)

    [翻译]"PE文件格式"1.9版 完整译文(附注释) 标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006- ...

  9. python实现检查邮箱格式是否正确,并检查提交的文件格式是否正确

    代码实现功能: 输入邮箱账号,检查邮箱格式是否正确,是否含有@字符,且以 .com结尾 输入提交文件名,检查提交的文件格式是否正确,是否以 .py结尾 email = input("Plea ...

最新文章

  1. 完全解读ping命令应用方法
  2. redis发布与订阅消息
  3. 算法-----两数之和 II - 输入有序数组
  4. iOS 9音频应用播放音频之音量设置与声道设置
  5. OAuth2基本概念和运作流程
  6. 用友t3服务器文件丢失,服务器系统损坏数据恢复
  7. linux文本处理脚本题,Linux文本处理工具sed练习题
  8. 【BZOJ2959】【codevs2002】长跑,维护双联通分量
  9. Charles抓包-解决显示乱码问题
  10. python 读png的值变了_深度学习数据预处理_python批量转换labelme标注的json格式标签为png格式...
  11. 机器学习与深度学习常见面试题
  12. 风力发电仿真系列-基于Simulink搭建的变速恒频双馈风力发电模型
  13. postgresql数据库 timescaledb 时序库 超级表 块的压缩(compress_chunk()的应用)
  14. CCF-CSP真题《202209-4—吉祥物投票》思路+python题解
  15. 多吃什么食物可以明目护眼?
  16. 揭秘史上最烂开发项目:苦撑12年,600万+行代码!
  17. C++ 实现mystring类型
  18. 判断js中对象的类型
  19. R语言:无法精确计算带连结的p值
  20. 实战游戏项目管理1-规划篇

热门文章

  1. 第十章 python 常见模块
  2. JavaWeb加强之JSON、jQuery、Ajax、Java正则表达式、过滤器、监听器、模板引擎FreeMarker
  3. 游戏Dapp怎么选择公链?
  4. 码一些有用的东西网站的域名被拦截怎么办? 教你快速解除各种拦截
  5. 从Web2.0到Web3.0
  6. Easy Problem 9 判断质数
  7. 如何设计产品的引流诱饵?如何控制引流产品的成本呢?
  8. opencv中VideoCapture的使用——打开网络摄像头/图像序列
  9. Event-B 形式化方法
  10. Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略