Ogre
文章平均质量分 84
changbaolong
这个作者很懒,什么都没留下…
展开
-
Ogre场景中管道透明之后为黑色的问题
---------------------------------------------------------------------------------------------depth_write 设置此渲染通路的深度缓冲写入的状态是打开状态还是关闭状态。 格式: depth_write 如果深度缓冲写入处于打开状态,无论何时一个像素想要写入画面缓冲,深度缓冲都会原创 2014-01-06 10:57:24 · 1844 阅读 · 0 评论 -
overlay实现帧动画
转载自:http://blog.csdn.net/howlet2/article/details/4835061 ogre Dome上有动态纹理的效果演示,这里讲的不是移动或旋转纹理坐标产生的纹理动态效果,而是由几张图片更换显示产生的动画效果,这种效果在2d中指的是帧动画。首先要准备好一组图片,如animotion1.jpg, animotion2.jpg, animotion3.jpg,转载 2013-05-08 20:00:53 · 691 阅读 · 0 评论 -
Overlay
界面 这里的界面是指菜单、HUD及提示信息框在内的综合体。基本概念Overlay将被渲染在“普通”场景内容之上的层。Overlay是那些将在主场景被渲染之后才渲染的可视组件的容器。这些可视组件将构成HUD(heads-up-display)、菜单或其它在主场景内容之上的任何东西。 一个Overlay总是占满一个viewport的全部尺寸,尽管它包含的组件并没有那么大,那么多。O转载 2013-04-26 09:19:25 · 2561 阅读 · 0 评论 -
Overlay中文显示
如何在Ogre中使用中文? 有一种方法是借助CEGUI可以显示中文,具体可以在这儿看到:http://hghhe.blog.163.com/blog/static/32377568200968102726571。 在本篇文章中所要说的是直接使用Ogre显示中文,一般Ogre中的Overlay来显示(当然还有可能会在公告板中用到)。 在自Ogre1.4版本后,在Ogre中就增加了一个Displ转载 2013-04-26 09:20:07 · 1096 阅读 · 0 评论 -
Ogre粒子系统中的DeflectorPlaneAffector粒子影响器
ParticleAffector(粒子影响器)用于在粒子的生命周期内更新粒子的属性,最重要的方法是 _affectParticles(),OGRE中提供了如下派生类,自己也可以根据需要编写自己的Affector:ColourFaderAffectorColourImageAffectorColourInterpolatorAffectorDeflectorPlaneAffect原创 2013-03-12 10:09:34 · 1459 阅读 · 0 评论 -
Ogre手动绘制模型以及添加材质
1.用Ogre来绘制一个立方体ManualObject* cube;cube = mSceneMgr->createManualObject("cube");cube->begin("cubeMaterial"); // 顶点 cube->position( -100, -100, -100); //0 cube->colour(0.0, 0.0, 0.0);转载 2013-01-22 22:03:20 · 949 阅读 · 0 评论 -
Ogre粒子系统简介
1、简介 粒子系统被用来作为在3D程序中产生多种视觉特效的基础。粒子系统特效在游戏中运用广泛,比如射击类游戏中的爆炸特效,烟雾特效,开枪时喷出的火焰,撞击时击出的火花等等多半由粒子系统实现。 粒子系统的基本单元是粒子,每个粒子一般具有形状、大小、颜色、透明度、位置、速度、加速度、方向、生命周期等属性。每一帧,粒子系统一般都会执行如下步骤: (a)产生新的粒子,并赋予原创 2012-12-19 21:25:29 · 3069 阅读 · 0 评论 -
Ogre场景管理器
今天太晚了,明天写吧~~~原创 2012-12-19 22:48:07 · 822 阅读 · 0 评论 -
三维空间中的旋转变换
1、绕坐标轴旋转的公式: (1)绕Z轴旋转 (2)绕X轴旋转 (3)绕Y轴旋转 以上的矩阵变换公式为 : P' = P * mat; 2、绕任意轴旋转的公式: 给定具有单位长的,则物体绕OA轴旋转变换的矩阵表示可确定如下: 3、绕任意轴旋转在Ogre中实现Ogre::Matrix3 I原创 2012-12-17 13:48:18 · 23695 阅读 · 2 评论 -
3ds max中的对象绕局部坐标系旋转的动画
最近在3dsmax中坐旋转的动画,但是出现了一个问题,绕局部坐标系进行旋转之后的动画,出现的效果确是绕全局坐标系旋转,测试了一个上午,终于找到了解决方案。 如下图所示,3dsmax中右侧控制面板中的 “运动” ->“PRS参数”->"创建关键点"->“旋转”, "运动"->“Euler参数”->"轴顺序zxy"->“旋转轴z”,原创 2012-11-12 14:39:51 · 10145 阅读 · 2 评论 -
碰撞检测
AABB(轴对齐包围盒)这个东西是碰撞检测的基础,和它类似的还有OBB(有向包围盒),由于OBB创建复杂,所以Ogre采用了AABB。最简单的碰撞检测:通过Ogre::SceneNode::_getWorldAABB()可以取得这个叶子节点的AABB(Ogre::AxisAlignedBox),Ogre::AxisAlignedBox封装了对AABB的支持,该类的成员函数Ogre::A原创 2012-12-11 14:06:46 · 1013 阅读 · 0 评论 -
AABB轴向包围盒
AABB,Axis-Aligned Bounding Box,即通过两个三维向量作为对角点产生的与空间轴平行的长方体空间。在Ogre中通过类AxisAlignedBox来实现,该类中两个成员变量Vector3 mMinimum和Vector3 mMaximum是两个三维向量,分别表示长方体空间的对角点。 主要成员函数如下:1、提取最小角点和最大角点const Vector3& g原创 2012-12-11 22:48:31 · 2862 阅读 · 0 评论 -
场景查询
场景管理的一个重要的功能就是场景查询,而ogre支持的场景查询方法包括:1、光线查询(Ray Queries);2、球体查询(Sphere Queries);3、边界盒查询(Bounding-Box Queries);4、边界平面查询(Bounding-Plane Queries);5、相交查询(Intersection Queries)。 光线查询: RaySc原创 2012-12-11 13:56:10 · 1050 阅读 · 0 评论 -
在场景中放置一个实体模型
一个3D模型是一个实体(Entity)并且它必须附属于一个场景结点(SceneNode)以被放置在场景中。场景结点能够由SceneManager中的rootScnenNode产生。创建一个实体和场景结点并把实体挂在场景结点上是这个样子:Entity* thisEntity = mSceneMgr->createEntity("nameInTheScene", "FileName.mesh");原创 2012-12-08 10:27:40 · 781 阅读 · 0 评论 -
从场景中移除一个实体
为了移除一个实体(Entity),你必须把实体从它的场景结点中分开,删除它如果需要的话还要销毁场景结点,这必须用SceneManager来完成。如果你有一个叫做myNode的SceneNode*,你可以用下面的代码完全地删除它的内容(MovableObjects和子场景结点)及结点本身:SceneNode* parent = entity->getParentSceneNode();parent原创 2012-12-08 10:26:14 · 1118 阅读 · 0 评论 -
Ogre的御用粒子系统插件ParticleUniverse的整合
游戏中的粒子系统常用来被创建各种炫丽多姿的特效,例如魔法效果,闪电,火焰,火舌,光环,雨雪,落叶等等,其重要程度不言自明。但很多初学者对粒子系统的使用仍是一头茫然,这大多也都是因为多数书籍上只是介绍了粒子系统的原理和简单的效果实现,例如最简单的礼花效果等等,很多同学看过了以后并不觉得粒子系统能有什么过人之处,或是觉得即使粒子能制作高质量的特效,但也不知如何实现。当然在真正的游戏开发中,粒子系统转载 2013-05-08 20:03:44 · 1307 阅读 · 0 评论 -
国产OGRE商业游戏
2011-10-13 17:03 (ogre开发的游戏)国产OGRE商业游戏时代来临(原创)自从天龙八部以及火炬之光的成功,基于OGRE开发游戏的潮流序幕已经拉开OGRE做为一个最强大的免费图形引擎,其效率和扩展性是无可争议的目前国内游戏开发 购买商业游戏引擎 价格太贵 用免费的OGRE引擎自己组装成自己的游戏引擎将能更适合需要,唯一的缺陷就是第1套游戏引擎需要开发时间转载 2013-05-11 13:19:56 · 2076 阅读 · 0 评论 -
Ogre碰撞检测,精确到物体网格三角面
我们课程的期末项目是做一个蚊子吸血的三维游戏。由于蚊子的体积很小,并且蚊子需要在三维场景中穿梭飞行。因此常规的模型包围盒检测便显得有些不足。例如,场景中有一个台灯,从模型的包围盒看,台灯是一个长方体,如果按照这样来做碰撞检测,那么蚊子便无法从台灯的长长的弧形躯干形成的拱桥洞中飞过去,尽管看起来蚊子确实没有撞到台灯。这在现实中是让人无法接受的。 我曾经尝试了几种方法,一种是用从蚊子出发的指向转载 2013-06-05 10:26:39 · 1270 阅读 · 0 评论 -
Ogre-渐变背景色(gradient background)的实现
转载自:http://blog.csdn.net/hefee/article/details/6287341背景色在ogre里面是通过ViewPort类中的setBackgroundColour()这个成员函数实现的,不过此类只提供给单一颜色的设置!! 不过,我们可以通过间接的方法去创建渐变的背景色,下面详细介绍: 1. 重构Ogre::Rect转载 2014-01-05 22:47:08 · 2464 阅读 · 1 评论 -
Ogre中导入Max烘焙的模型(4)——Ogre与MAX的坐标变化
经常遇到OgreMAX导出Scene文件之后,导入到Ogre中发现,很多物体位置都不对了。有人发表过文章,说是调整坐标系:http://0flyingpig0.blog.163.com/blog/static/9937055620102105326527;也就是通过“选中模型后--->层次--->点击仅影响对象--->变换 即可将轴坐标重置为OgreMax导出的正常Ogre轴”,来统原创 2013-11-27 19:13:16 · 1598 阅读 · 0 评论 -
Ogre中导入Max烘焙的模型(3)—— OgreMax导出Scene
本文记录了MAX中烘焙之后,如何利用OgreMax插件导出Scene文件,并利用OgreMax WinViewer插件查看导出的模型效果是否正确。原创 2013-11-25 21:03:51 · 3755 阅读 · 1 评论 -
Ogre中导入Max烘焙的模型(2)—— MAX中烘焙
本文主要记录MAX中如何利用”渲染到纹理“的技术,烘焙材质,并把烘焙之后的材质指定给对象。原创 2013-11-25 20:06:18 · 2256 阅读 · 0 评论 -
Ogre中导入Max烘焙的模型(1)—— 渲染到纹理
渲染到纹理3ds Max 中的“渲染到纹理”工具可以将各种场景元素渲染或“烘焙”到纹理中,包括照明和阴影。可以在实时 3D 应用程序(如游戏)中使用这些特殊纹理,以减少渲染器的负担,从而提高帧速率。在本课程中,将介绍这一功能的基本用法。注意:本教程的所有必需文件都可以在 3ds Max 附带的教程文件光盘上找到。在执行教程之前,请将 \tutorials 目录从光盘复制转载 2013-11-22 17:00:08 · 4351 阅读 · 0 评论 -
Cg编程
在计算机图形学领域,用计算机处理图形信息我们最先接触的通常是使用opengl和d3d这些图形编程接口,这些通常称为固定管线的编程,也就是程序员不直接操纵可编程的GPU,在常见的opengl的编程管线中,底层为我们设定了固定的渲染过程,程序员控制的只是这个过程中的各种参数。但是在有些情况下,尤其是硬件性能突飞猛进的今天,为了得到更好的效果,得到对图形计算更好的控制,就需要自己对GPU进行编程,这也就转载 2013-11-19 20:55:47 · 1356 阅读 · 0 评论 -
Ogre:render to texture
Ogre中可以渲染到纹理,这如同渲染到屏幕上一样,具体的使用方法是:1 先创建一个纹理,用于接受渲染的内容TexturePtr renderTexture=TextureManager::getSingleton().createManual("RT",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,TEX_TYPE_2D,win转载 2013-11-19 20:12:19 · 1073 阅读 · 0 评论 -
Ogre:Animation(Ogre中的动画)
在Ogre中Animation是一块非常重要的部分,但是笔者在学习Ogre的动画时遗憾的发现关于Ogre中动画的资料非常的少,Ogre的sample中只有最简单的导入一个骨骼动画的例子,在网上也很少有人谈及,Ogre Wiki中的教程也是边边角角,不知这么重要的部分为什么不做一个全面的tutorial。我从网上的仅有的一些资料和自己的亲自试验总结了一下基本的Ogre动画的使用,当然Ogre的动画模转载 2013-11-19 19:42:54 · 989 阅读 · 0 评论 -
Ogre与MFC结合时的内存泄漏问题
转载自:http://hi.baidu.com/monboy/item/5e06ccefaa50a80c65db0091刚开始使用Ogre时总是碰到内存泄露,而且往往是一泄千里,等半分钟才能打完日志,我想这和Ogre中的大量大对象很有关系。下面就来分析一下内存泄露的产生原因。1. MFC中使用Ogre时发生的内存泄露这个问题比较有意思,其实并没有发生泄露,而是MFC自作主张的认为发生了原创 2013-11-16 11:10:31 · 808 阅读 · 0 评论 -
Ogre中mesh的顶点数据与索引数据
【转】Ogre的mesh的顶点数据与索引数据 ------- 来源ogre3d.org转载自:http://hi.baidu.com/hsf_design/item/271a520daf420513addc7003//读取的数据用于物理引擎的计算/** * 获取Ogre的Mesh信息* @param mesh:转载 2013-06-05 15:26:18 · 2352 阅读 · 1 评论 -
Ogre射线精确查询
bool PickEntity(Ogre::RaySceneQuery* mRaySceneQuery, Ogre::Ray &ray, Ogre::Entity **result, Ogre::uint32 mask ,Ogre::Vector3 &hitpoint, bool excludeInVisible,const Ogre::String& excludeobject, Ogre:转载 2013-08-21 22:35:50 · 1873 阅读 · 0 评论 -
Ogre粒子系统脚本详解
粒子脚本允许实例化地在自己的脚本代码中定义粒子系统,而不必在源代码中进行设置,可以在做任何修改对哦能得到快速的回应,脚本里定义的粒子系统被用作模版,并且多个实际的系统可以在运行时从脚本里被创建。 粒子系统脚本在系统初始化时被装载:默认它在普通资源所在位置搜寻.particle后缀的文件并分析它,如果想分析不同扩展名的文件,调用ParticleSystemManager::getSi转载 2013-08-21 22:32:39 · 3583 阅读 · 0 评论 -
Ogre-天龙八部粒子插件的实现(1)
天龙八部粒子开发(1)要实现天龙八部的粒子效果, 需要写自己的粒子插件, 主要实现三个内容:影响器(Affector), 发射器(Emitter), 粒子渲染器(Renderer)1. 实现粒子插件由于这些天龙八部的粒子效果是用插件的形式, 所以可以自己建立一个win32 dll工程, 然后需要用到的时候在plugin.cfg文件里加上这个dll文件就可以了注意工程属性的C++/预转载 2013-08-21 23:00:27 · 1454 阅读 · 0 评论 -
Ogre插件介绍
近年来,网络游戏的发展日新月异,这离不开游戏引擎,而游戏引擎中最重要的莫过于渲染引擎,因为它直接影响游戏的画面质量和视觉效果。渲染引擎编辑器是针对某款渲染引擎而开发的工具,通过渲染引擎编辑器,开发人员无需了解渲染引擎的内部构架、工作原理,无需编码便可创作出效果良好的场景供三维应用程序使用,大大提高了开发效率,节省了开发成本。2 OGRE简介开源图形渲染引擎OGRE(Open-sou转载 2013-08-21 22:51:57 · 2303 阅读 · 0 评论 -
改变TextArea中的文本
你可以在运行时间改变GUI中Containers和Elements中所有的参数(parameter)。为此,首先你必须得到一个你想要的Element或Container的指针,如果是基于你想做的东西的需要就把它设计成那种类型。得到一个指向在.overlay脚本中定义为“myTextArea”的TextArea的指针并改变其caption类似这样:OverlayElement* thisText原创 2012-12-08 10:21:25 · 2158 阅读 · 0 评论 -
如何退出ogre程序
1、按ESCAPE键,直接停止程序;2、在FrameListener中frameStarted()或frameEnded()中返回false来退出程序;3、调用Root::getSingleton().queueEndRendering(),立刻结束程序。原创 2012-12-08 10:11:51 · 670 阅读 · 0 评论 -
OGRE中实现Transparency
在.material文件,可以将参数scene_blend设置为add,modulate或alpha_blend.(1) scene_blend add(是将渲染出的颜色和亮度一起叠加到渲染场景中)你可以使用JPEG或PNG图像文件作为纹理。图片的黑色部分将变成透明(即black = fully transparent)通常用作爆炸、火焰、灯光等。(2)scene_blend转载 2012-10-11 21:53:49 · 1077 阅读 · 0 评论 -
Ogremax插件导不出mesh文件的问题
最近需要用Ogremax插件导出scene文件,然后用OgremaxScene插件读取到Ogre程序中。正常情况下,会导出*.scene、*.mesh、*.material和贴图文件,但是奇怪的是,有时候会导不出mesh文件,但有时候能正常导出。最后发现问题竟然出现在导出的路径上,就是路径必须是英文路径,否则可能会导不出mesh文件。原创 2012-09-19 21:13:23 · 2004 阅读 · 0 评论 -
Ogre中设置渲染性能参数
先转载一部分关于Ogre中设置渲染性能参数的内容,然后叙述自己在设置过程中设置失效的问题。 在ogre示例框架程序启动时,我们会看到一个配置窗口,在这个Rendering Setup配置窗口中,我们可以设置窗口启动大小、抗锯齿度、是否垂直同步、是否Gamma校正等。在Ogre::Root中有showConfigDialog方法来显示配置窗口,ogre会自动调会Root::rest原创 2012-10-09 21:09:31 · 1078 阅读 · 0 评论 -
Ogre中画折线
Ogre::ManualObject *pManual = new Ogre::ManualObject("polyline"); pManual->begin("",Ogre::RenderOperation::OT_LINE_STRIP); pManual->position(0,0,0); pManual->position(50,0,0); pManual->positio原创 2012-10-08 17:38:46 · 886 阅读 · 0 评论 -
Ogre导入3Dmax模型注意事项
Ogre导入3Dmax模型注意事项 2010-03-01 12:53:26| 分类:Ogre | 标签: |字号大中小订阅 1.由于Ogre与3Dmax坐标系统的不一致,可能会导致3Dmax导出的模型在Ogre旋转了90°(我使用OgreMax导出模型).这可以在3Dmax里更改模型的轴坐标即可修改方法 : 选中模型后--->层次--->点击仅影响对象-转载 2012-10-06 17:51:39 · 4636 阅读 · 0 评论 -
Ogre程序在mesh文件原理
创建模型实体Entity* entObject = mSceneMgr->createEntity(“object”, “ogrehead.mesh”);createEntity() (创建实体) 在当前场景中创建一个实体实例并返回它的对象指针,作为 SceneManager 类的一个成员函数,它有两个重载:Entity * Ogre::SceneManager::createEnti转载 2012-09-01 16:27:44 · 919 阅读 · 0 评论