从零开始做3D地图编辑器(七)(基于QT与OGRE)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

第二章 编辑器的基本框架

一、几个问题        

前面说了很多编辑器之外的东西,真正要动手做编辑器了,也不能一股脑地就开始了,这之前必须要问自己几个问题:

1、这个地图编辑器有什么基本功能?

2、导入导出文件格式?

 

A3D地图编辑器的基本功能

正如开篇所说,编辑器制作有两种趋势,其中一种是大而全的世界编辑器,这种方式可以带给极大的成就感,正合很多新人的意,但是我觉得一开始给自己(特别是新人)设定一个庞大的计划是件空洞而不现实的事情,一个编辑器越是大而全它的应用方向就越窄,越不利用拓展,使用就越费劲,问题BUG也就越集中,维护成本也就越高。

其实可以从小做起,先来分析基本需求:

所谓地图编辑器,地图编辑是其基础功能,一般地图都是在地形(平面)上面放置演员(把它叫作演员是不希望和OGRE的实体概念冲突),那么我们就确定了我们两个需求:地形编辑、演员管理。

         那么这两个需求又引申出新的需求,地形不能是光模吧,演员不能永远是编辑器预设的几个模型吧,所以我们又需要实体、纹理加载与删除的功能。加载之后的纹理和实体总应该有个地方可以浏览吧,不然怎么选择使用?

         好了,因为我们的目标暂时是做一个基本框架。所以我们暂时确定以下基本需求:

1、  添加删除浏览实体、纹理

2、  地形编辑

3、  演员管理

除了基本需求外,我们还有另外一些编辑器本身的一些需求:

1、  菜单、工具栏、状态栏。

2、  日志管理。

日志管理是一个很重要的东西,它得支持两种方式,一种是导成文本,另一种是在编辑器里面实时看到,为什么要提供这两种东西呢,如果没有文本,有时候挂的时候你看不到为什么挂,如果没有实时地看到每次去看文本又很麻烦。

B、文件格式

导入导出文件格式是一个很纠结的问题,现在一般流行几种方式:

1、              纯二进制数据,优点是读取速度非常快,几乎无浪费数据,缺点是不易被修改,如果没有工具基本上几乎不可能被改动(当然你要约定某些字符串也是可以的),这种方法还有不少应用。

2、              自定义格式,类似于INI,优点是终于可能手动修改了,缺点是得花不少时间去写解析模块,应该是一种过渡解决方案,这种方案和上面那种有模糊的界定,区别在于这个拥有一个解析器。

3、              XML,现在应该是主流,优点是编辑修改很方式,手改也行,工具也很多,还不用写解析器,TinyXML,RapidXML等都是不错的解析器,缺点是效率低,在特定环境下会出现偶尔读不出文件的情况(可能是解析器的问题)。

现在不少游戏使用两种13两种方式结合的方法,在编辑时使用XML,结果用工具导成纯二进制加密文件,我也打算使用这种方法:

编辑器配置文件(需要对窗体的开关状态进行存储)和生成的地图使用XML。导入纹理、实体使用OGRE默认支持的格式。

从零开始3D地图编辑器 基于QTOGRE 阅读详情

相关推荐

qt三维山地地图源码.zip

qt三维山地地图源码

Qt+OpenGL实现三维地形显示

因为项目需要,要用Qt+OpenGL显示三维地形,业务代码涉及保密,但是这种纯技术上的东西还是可以分享的。 话不多说,先看效果 这里我介绍一个简单的使用QT中的OpenGL实现三维地形显示的demo,可以实现第一人称的前后左右以及左右旋转上升下降等动作。 opengl的程序大多是三步式操作。主要实现三个函数就可以了。(当然还有着色器这些其他的) 这三个函数分别是 void init...

weixin_42521239的博客 1万+

QT+三维地球,qt三维地球,C,C++

QT加载OSGearth,实现三维动态地球显示

qt绘制地形图(3d)

本文借鉴自qt5.9c++开发指南,我只想用作记录。 看下代码: 需要在pro文件中导入:QT += datavisualization #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QtDataVisualization> #include <QLineEdit> #include <QComboBox> #include <QSlider> #include &l

家俊的博客 5327

QTOGRE3D地图编辑器

http://blog.163.com/modingfa_002/blog/static/1109254662010427114343461/ http://download.chinaprj.cn/detail/iDDDibsB                 code 第一章 基础知识 注:文章里面有不少个人见解,欢迎大家一起互相讨论。希望高人能给予相应理解意见建议。 在实际3D

linking530的专栏 2693

【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、GIS)第四期

Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 经常被当一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;

爱看书的小沐 1万+

从零开始3D地图编辑器(基于QTOGRE)

第一章 基础知识注:文章里面有不少个人见解,欢迎大家一起互相讨论。希望高人能给予相应理解意见建议。在实际3D游戏开发中,编辑器是极其重要的一个部分,一个优秀健壮的编辑器,可以使项目事半功倍,而相反,一款BUG超多(随时会挂)又不注重操作习惯(完全基于快捷键,又没有详细的使用说明

关注云计算 2173

从零开始3D地图编辑器(一)(基于QTOGRE)

第一章 基础知识注:文章里面有不少个人见解,欢迎大家一起互相讨论。希望高人能给予相应理解意见建议。在实际3D游戏开发中,编辑器是极其重要的一个部分,一个优秀健壮的编辑器,可以使项目事半功倍,而相反,一款BUG超多(随时会挂)又不注重操作习惯(完全基于快捷键,又没有详细的使用说明)的编辑器,不仅会使项目事倍功半,而且会削弱开发人员的积极性,甚至让开发人员对项目产生排斥情绪。编辑

步行者,一步一个脚印 5053

QT 3D地球模型OpenGL

项目是用QT5.12开发的基于OpenGL的3维地球项目,同时包含了ImGUI库。暂时没有地图分级功能。

从零开始3D地图编辑器()(基于QTOGRE)

二、工具安装指南1、OGRE下载编译OGRE官方网站:http://www.ogre3d.org下载最高版本的OGRE(1.7.1),有两种方式:第一种方式是直接下载SDK,下载的SDK可以直接使用,但是由于编译环境不同,可能会缺少一些DX的DLL,你得在网络下另外下载缺少的DLL,下载方法是从网站左侧的DownLoad里面选择SDK,然后选择相应VS的版本,我们推荐使用VS20

步行者,一步一个脚印 3716

从零开始3D地图编辑器(六)(基于QTOGRE)

五、OGRE基础知识友善提醒:如果你对OGRE比较了解,请自觉跳过此节。本节并不打算提供详细的入门教程,只是对OGRE的简单介绍,如果需要OGRE的详细资料,请自行使用网络功能。1、OGRE是什么         Ogre是一款开源的图形渲染引擎,它的全名叫(Object-oriented Graphics Rendering Engine),目前在开源图形渲染引擎这一块排名第一,

步行者,一步一个脚印 3050

从零开始3D地图编辑器()(基于QTOGRE)

二、基本框架布局         根据上一节的一些基本需求,出一个简单的布局如下图:窗体大小:1024*768,太大了有点显示器放不下!支持最大化,最小化,关闭按钮,支持手动拖大拖小。拥有菜单项(支持快捷键,图标):File : New, Open, Save, Save As, ExitEdit: Undo, Redo,Copy, Paste(这个功能暂时保留)Window:Entity List, Texture List ,Node List, property,Log,(支持图标check)Hel

破烂熊 1181

从零开始3D地图编辑器()(基于QTOGRE)

四、QT基本知识回到QT,先在VS中新建一个QT Application,项目里面有几个目录:1、              Form Files目录,它里面放的是使用QT designer制作的基于XML的布局文件,双击它就会自动进入QT designer。2、              Generated Files目录,它里面放的是一些临时生成的文件,这些文件用来处理QT的信号和

步行者,一步一个脚印 4087
上一篇: 从零开始做3D地图编辑器(六)(基于QT与OGRE)
下一篇: 从零开始做3D地图编辑器(八)(基于QT与OGRE)
vickylh
博客等级 码龄23年 47粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值