- 博客(85)
- 资源 (14)
- 收藏
- 关注
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(7)
第四部分 结论和展望 通过对游戏世界的演绎,对游戏逻辑的归纳,以及对游戏底层工具的融合,逐步诞生了我们现在的框架。为了使框架更能经得起检验,我们使用了一些设计模式提供的方法来保证框架的安全性。现在的高层游戏引擎说明了一点,对于这个游戏,我们的框架达标了。但用这个框架开发一个新的游戏是否也会达标?答案是否定的。如果用这个框架去开发一个RPG游戏,那我们还缺技能、道具等诸多系统;如果去开发一个纸牌游
2009-12-17 14:43:00
473
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(6)
零件组装:具体游戏层的构建过程框架搭完后需要一个具体的东西来证明我们的框架是否达到了预期目标。综上,我们对这个框架的要求是:1、 利用框架开发的开发者不必要关注框架的底层细节,不必要关注OGRE,只需要关注各个组分之间的逻辑关系和存在方式。即满足框架良好的封装性。2、 上层逻辑允且只允许与框架打交道。同时,框架中可以包含OGRE中无法绕开的重要组分。3、 如果是框架没有完成的功能,应该可以通过对框
2009-12-17 14:41:00
552
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(5)
第三部分 实作:基于OGRE图形引擎的游戏框架第三部分所有图片点击放大场景系统:OGRE场景体系的分离和重新合成窗体底端 首先我们发现,OGRE场景系统似乎现在和我们所理解的场景系统有点不合。OGRE是用一种渲染方面的理解来考虑场景的,而作为一个游戏似乎需要考虑得更远。“游戏需要渲染,但游戏不仅仅是渲染”。 要融入OGRE图形系统,需要程序结构和习惯的调整,而且所写
2009-12-17 14:39:00
586
原创 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(4)
第二部分 OGRE图形引擎的基本构成第二部分所需所有图片窗体底端 OGRE(Object-oriented Graphics Rendering Engine,面向对象的图形渲染引擎),是国际上比较知名的开源图形渲染引擎。OGRE是用C++开发的面向对象且使用灵活的3D引擎。它的目的是让开发者能更方便和直接地开发基于3D硬件设备的应用程序或游戏。引擎中的类库对更底层的系统
2009-12-17 14:38:00
554
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(3)
第一部分 游戏引擎技术简介第一部分所需所有图片 引擎概述 曾经有一段时期,游戏开发者关心的只是如何尽量多地开发出新的游戏并把它们推销给玩家。尽管那时的游戏大多简单粗糙,但每款游戏的平均开发周期也要达到8到10个月以上,这一方面是由于技术的原因,另一方面则是因为几乎每款游戏都要从头编写代码,造成了大量的重复劳动。渐渐地,一些有经验的开发者摸索出了一条偷懒的方法,他们借用上一款类似题材的游戏中的部
2009-12-17 14:37:00
577
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(2)
Preview 游戏形态与其所决定的程序形态电脑游戏的本质是模拟现实“游戏是先于人类的,许多学者在关注游戏时候发现,在自然界哺乳类动物里存在着大量的游戏行为……“尽管游戏的历史是悠远久长的,但人类把它当作一种理论研究对象却是在近代才开始的事。德国诗人和剧作家席勒在研究艺术起源的问题上曾以‘艺术起源于游戏’的大胆一说而语惊四海。他认为,人类在现实生
2009-12-17 14:34:00
580
转载 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(1)
高层游戏引擎——基于OGRE所实现的高层游戏引擎框架这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统。意念才学疏陋,望众位前辈不吝赐教。由于代码质量不高、环境很难于配置、资源包过大等问题,意念暂先不提供代码和程序,未来有时间的时候组织一下这些曾经的代码,再向外发布。 文过三月,也有些新的想法,以后会慢慢跟大家聊的,欢迎拍砖哦^_^。关键字与术语:
2009-12-17 14:32:00
634
原创 全国游戏公司
北京地区 41家(以下厂商均以字母顺序排序) 北京冰河世城网络技术有限公司 北京大宇软星科技有限公司 北京动力时空科技发展有限公司 北京疯狂店主工作室 北京飞行船软体有限公司 北京飞越梦幻科技有限责任公司 北京格美科技有限公司 北京光宇维思科技有限责任公司 北京国技传世科技有限公司 北京豪峰数码娱乐科技有限公司 北京华象网络科技有限公司 北京皓宇互动科技(北京)有限公司
2009-12-17 09:39:00
1495
原创 解决VS2008中生成C/C++项目时遇到“生成‘rc.exe’时出错”
太倒霉了,昨天电脑重装了,又重装了一次VS2008,昨天下午一直在装,装完以后编译一个OGRE小程序发现,出现这样的错误,每次重装VS都会出现错误: 生成‘rc.exe’时出错 最后终于找到了解决方案: 解决步骤: 1、运行VS2008安装程序。 2、在“选择要安装的功能”这一步时,依次展开“语言工具”——“Visual C++”——“Visual C++
2009-12-17 09:31:00
453
转载 OGRE 使用技巧总结
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://stdsoft.blogbus.com/logs/35987681.html1.所有需要挂在SceneNode上的user-object, 都需要从MovableObject来继承,比如一个最典型的应用是 3DSoundSource.2.Ogre中RenderQueue的相关标号,标号越小的其最先渲染。Backgro
2009-12-13 21:59:00
596
转载 OGRE从程序加载地形
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://stdsoft.blogbus.com/logs/35976808.html据说这就是从程序加载地形的标准方法,但我觉得还不够灵活:setWorldGeometry()有重载形式,一种用于加载配置文件,另一种我们可在程序中使用,以达到手工加载的功能。这里,SceneData被 typedef 为std:map,它存储
2009-12-13 21:58:00
509
转载 OGRE中的四元数与旋转
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://stdsoft.blogbus.com/logs/35987602.html 想象一个物体在3D空间中移动的过程,该物体必然会涉及到旋转。例如一个怪物,他的运动方向会改变,要改变其方向只需要对其进行旋转即可。旋转的方式大致分为三种:Euler旋转,矩阵旋转,以及四元数旋转。这里稍微记录下我目前对于四元数旋转的理
2009-12-13 21:58:00
430
转载 OGRE地形配置文件解析
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://stdsoft.blogbus.com/logs/35894681.html 既然你已经做出决定要使用地形场景管理器,那么下面介绍的一些东西是你需要知道的。 场景中地形的形状和着色是由高度图、地形纹理和地形细节纹理共同计算而得的。高度图是一张简单的灰阶图,其中每个像素点代表一个高度值,0代表这个地形的地面
2009-12-13 21:57:00
519
转载 (转)OGRE根据高度图创建Terrain地形流程分析
OGRE可以通过两个接口来生成地形,分别是void TerrainSceneManager::setWorldGeometry( const String& filename )以及void TerrainSceneManager::setWorldGeometry(DataStreamPtr& stream, const String& typeName ),两者的根本区别就是一个是传递地形信息
2009-12-13 21:55:00
518
转载 专业词汇:网络技术缩略语
AAL ATM适配层 ATM Adaptation Layer ABR 可用比特率 Available Bit Rate ACR 衰减串扰比 ADPCM 自适应差分PCM ADSL 非对称数字环路 Asymmetric Digital Subscriber Line AMI ATM Management Interface AMPS 先进型移动电话
2009-12-13 12:40:00
488
转载 计算机专业词汇
不全和错误的地方还望高手补充:Access Control List(ACL) 访问控制列表access token 访问令牌account lockout 帐号封锁account policies 记帐策略accounts 帐号adapter 适配器adaptive speed leveling 自适应速率等级调整Address Resolution Protocol(ARP) 地址解析协议Ad
2009-12-13 12:39:00
246
转载 一个外企经理对大学生的心里话(图)
近日我部门在招聘新人,看着目前严峻的就业形势,黑压压的应聘人潮,以及不断下滑的薪资,很是感慨。虽然已经工作五年,虽早已经职业化,但非常怀念校园的时光,也一直关注中国的大学生。作为一个外企的部门经理,我也是从一名青涩的大学生,通过自己的奋斗,用五年的时间做到现在的的位置,期间有很多的酸甜苦辣以及更多的经验经历,希望能将自己的感悟现今的大学生分享,希望大家能为今后有一份满意的工作打好基础。
2009-12-13 12:33:00
290
转载 61次求职失败后得出的5条真理
如果一个人在失败过61次后,终于成功,那么这个人的经验,一定是很宝贵的财富。 一个女孩,10月做求职准备。11月毕业生供需见面会。现场求职者如潮水,费了九牛二虎之力塞进8份简历,石沉大海。招聘会上成功是渺茫的。她开始注意从报纸上寻找就业信息。她不再盲目地到处寄简历,而是在得到信息后,电话或登门求职。4个多月,数十次电话或登门求职,失败。因为她是女生和应届毕业生。但她得知一家汽车销售公司招聘文职人
2009-12-13 12:29:00
256
转载 游戏开发所需要看的书
游戏开发所需要看的书 1、C++primer中文版第4版 2、C++标准程序库自修教程与参考手册 3、Windows程序设计第5版 4、MFC windows程序设计第2版中文版 5、VC++深入详解 6、MFC深入浅出 7、Effictive STL 8、Windows核心编程 学好以上几本,也可以去游戏公司一试VC++软件工程师职位了。 9、WINDOWS游戏编程大师技巧第2版 10、3D
2009-12-11 21:40:00
304
转载 游戏引擎开发之路
游戏引擎开发之路这条路很长,因为需要知道和用到的东西太多了。 G8 y4 N% r5 ~ m4 X学习次序1、首先是语言方面,这个问题没有太多的选择的余地,基本上是用C和C++;VB的也有,但是很少;C#因为微软的力挺,在游戏开发中也逐渐多了示例。了解基本语义和语法就可以下一步了。如果想C++学精通了在往下学,估计就没有机会往下学了,因为你的热情可能在这都耗费了。这个的学习是要不断重复的,
2009-12-11 21:38:00
295
转载 游戏程序员所需的知识体系
我见过一些朋友,他们想学习游戏编程,太过急于求成,总是一位的追求最新的技术,最高深的技术。例如一个刚刚大学毕业的朋友,我看他对于C语言指针的概念理解的很混乱,就劝他应该加强语言基础学习,过了一段时间又遇到他,他却想和我讨论多线程的程序设计。基础知识不牢固,等遇到问题的时候往往摸不到头脑。就像《Joel说软件》中说的那样:抽象层往往是有漏洞的,所以在一个项目中必须至少有一位了解所有细节的“编程高手”
2009-12-11 21:36:00
334
转载 【转】游戏程序员养成计划
与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。 首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不
2009-12-11 21:33:00
266
转载 Ogre学习笔记(7):Lighting
OGRE的灯光接口很简单,以Demo_Lighting工程为例:1. 创建灯光:Light* SceneManager::createLight(const String& name)此函数再调用“SceneManager::createMovableObject()”,创建一个Light的实例,然后加入到ObjectMap中(保存在SceneManager::mMovableOb
2009-12-11 16:57:00
420
转载 把Ogre log输出到CBCGPDockingControlBar
把Ogre log输出到CBCGPDockingControlBar 1.定义类继承自CBCGPDockingControlBar和Ogre::LogListenerclass COutputBar : public CBCGPDockingControlBar, public Ogre::LogListener2.重载Ogre::LogListener的messageLogg
2009-12-10 17:34:00
358
转载 Ogre中查询器Mask类型
当使用场景查询时还有一件事要考虑。假设你在场景里加入了一个公告板或者粒子系统,并且想要移动它。你会发现查询不会返回你点击的公告板。这是因为SceneQuery还存在另外一个Mask,查询类型Mask(QueryTypeMask),它限制了你只能选择这个标记指定的类型。默认情况是,当你作一个查询时,它只返回实体类型的物体。 在你的代码里,如果想要查询返回公告板或者粒子系统,则你要
2009-12-10 17:33:00
449
转载 OGRE--非主流计算相对局部坐标
在做3D编程的时候,很多时候会计算一个点相对于于另一个点的局部坐标.通常的做法是利用矩阵或者其它的操作方法.这里提出一个非常简单的方法,不用涉及到矩阵,思路也比较简单,代码更简单.效率也许不比较差.上代码:/* getLocalPosition 计算pOtherNode相对于pRefNode的局部坐标*/Ogre::Vector3 getLocalPosition(
2009-12-10 17:33:00
310
转载 在Ogre中使用OIS的两种模式
有些东西写下来一直就丢在硬盘里面2009年1月10日星期六 关于OIS的输入要开始考虑游戏输入的问题了,以及开始加入CEGUI也要考虑加入输入的问题。先把OIS的输入简单回忆一下。OIS有两种输入模式:非缓冲输入以及缓冲输入。无论用哪种输入方式,都应该有个输入设备管理器先,例如:(这代码仅仅是举例而已) 在Ogre中的一个例子。。。。 OIS::Inpu
2009-12-10 17:32:00
396
转载 Ogre中的碰撞检测(7)
前面的碰撞检测都是基于AABB的,并不精确, MOC利用射线场景查询,通过遍历Mesh的三角片,求得Mesh级别的碰撞检测,是个很好的轻量级碰撞检测工具。而且支持ETM和TSM两种地形。下载地址:http://www.artifexterra3d.com/另外该作者编写的编辑器也不错。
2009-12-10 17:30:00
456
原创 Ogre中的碰撞检测(5)
相交查询,就是遍历所有的对象,找到一对一对的相交物体,不过感觉不太实用。下面是网上找出来的相关代码:CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> //创建相交检测 IntersectionSceneQuery* p
2009-12-10 17:29:00
304
转载 如何在ogre游戏界面添加自己的信息,比如显示某变量的值
如何在ogre游戏界面添加自己的信息,比如显示某变量的值 // 首先在E:/ogre/media/packs的OgreCore.zip里面打开OgreDebugPanel.overlay,然后修改如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter
2009-12-10 16:40:00
412
转载 简要分析Ogre的渲染队列实现原理(二)
简要说Ogre渲染主流程分三步使用渲染队列:清空、构造和访问,这个过程在每一帧的绘制过程中重复执行。渲染队列的清空 Ogre在每一帧渲染前都会先清空渲染队列。熟悉Ogre渲染流程的很容易看到在SceneManager::_renderScene() 这个方法中调用prepareRenderQueue()方法。这个方法的实现很简单,就是清空现在的渲染队列并且初始化渲染队列的一些配置参数。渲
2009-12-10 16:35:00
850
转载 简要分析Ogre渲染队列的实现原理(一)
渲染队列在Ogre中是一个重要的概念,在场景中的所有物体都会在绘制前被Ogre放入到一个特定的渲染队列中。渲染队列主要起两个作用:1.确保正确的绘制顺序。比如先绘制天空盒再绘制一般物体,最后绘制界面。2.提高渲染效率。Ogre将具有相同pass的物体放在一起进行绘制,目的是尽可能减少渲染状态的切换。一般用户常用的是在entity中设置渲染队列序号,其实整个渲染队列的工作流程远远比这个复杂,但基本不
2009-12-10 16:33:00
550
转载 ogre射线
CEGUI::Point mousePos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseRay = mCamera->getCameraToViewportRay(mousePos.d_x/float(arg.state.width),mousePos.d_y/float(arg.state.hei
2009-12-10 16:31:00
294
转载 Ogre中的碰撞检测(6)
在3中,我提到检测到碰撞时候,后移一个单位,摄像机会抖动,现在通过记录摄像机上步移动偏移量,如果检测到碰撞则反移回来,可以解决这个问题。下面是修改后的代码: <img id="Code_Closed_Image_093847" style="display: none;" onclick="function onclick(){this.style.display=none
2009-12-10 16:30:00
544
转载 Ogre中的碰撞检测(4)
通过设置不同的掩码,可以实现有选择的碰撞检测,下面的代码中,ogre头能被查询器检测到,而机器人由于掩码不同,不能被检测到。 <img id="Code_Closed_Image_141800" style="display: none;" onclick="function onclick(){this.style.display=none; document.getE
2009-12-10 16:28:00
589
转载 Ogre中的碰撞检测(3)
在Ogre中,可以创建一个查询器,比如球体查询器,AABB查询器,面查询器等。下面我们以最常用的球形查询器为例来说明:如下面的代码,我们首先创建一个球形查询器,它需要定义一个球体,我们把它的位置,设置为摄像机的位置,半径为10,掩码为第二个参数,默认为-1,通过掩码,可以把碰撞的物体分成不同的组,比如我们设置球形场景查询器的掩码为0x1,则它只检测和它掩码相同物体的碰撞。该摄像机检测到e
2009-12-10 16:27:00
550
转载 Ogre中的碰撞检测(2)
Ogre 中,每个节点有AABB(轴对齐包围盒),通过包围盒,可以实现碰撞检测判断。具体实现过程如下: 通过Ogre::SceneNode::_getWorldAABB()可以取得这个叶子节点的AABB(Ogre::AxisAlignedBox),Ogre::AxisAlignedBox封装了对AABB的支持,该类的成员函数Ogre::AxisAlignedBox::intersects()可以判
2009-12-10 16:26:00
493
转载 Ogre中的碰撞检测(1)
基于射线查询的方式,实现摄像机和地形的碰撞检测,防止摄像机穿透地面,这也是ogre demo中Terrian例子中的方法。 首先定义 RaySceneQuery* raySceneQuery = 0;在CreateScene时候,创建场景查询 frameRenderingQueued事件中,进行射线查询,设定摄像机位置Code highlighting produced b
2009-12-10 16:25:00
413
转载 OGRE+CEGUI+OIS 完美解决鼠标非独占使用
OGRE+CEGUI+OIS 完美解决鼠标非独占使用 最近在用Ogre+CEGUI+OIS做游戏。在开发的过程出现了种种问题,现将问题一一整理,并将解决方案释出,供同好参阅。OIS默认鼠标占用模式是鼠标独占使用,表现为鼠标指针无法移除当前窗口。那么如果想把鼠标指针移除窗体怎么解决呢?让OIS使用鼠标协作模式啊!代码如下: //创建设备OIS::ParamList pl;si
2009-12-10 16:23:00
284
转载 修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)
本文主要讲的是《天龙八部》游戏的地形和一部分场景的具体实现,使用C++, Ogre1.6,我摸索了段时间,可能方法用的并不是最好的,但好歹实现了。文章可能讲得有点罗嗦,很多简单的东西都讲了。我是修改了ETM(Editable Terrain Manager)实现的地形,其实单单实现天龙八部的地形场景等的载入根本不需要使用ETM,直接用Ogre的顶点->索引->纹理就可以搞定地形,但我要做的是可以实
2009-12-10 16:21:00
401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人