ogre
文章平均质量分 66
思依_xuni
一边仗剑走天涯,一边油盐酱醋茶
展开
-
ogre 使用 RenderSystem::addClipPlane() 添加用户剪切面
若直接调用是不管用的,需要在场景管理器的监听器的preFindVisibleObjects 函数中调用才管用。 使用方法: (1)写一个类,继承自 Ogre::SceneManager::Listener (2)重写preFindVisibleObjects 函数void ShaderSample::preFindVisibleObjects(Ogre::SceneManager* ...原创 2018-07-25 17:26:55 · 326 阅读 · 0 评论 -
ogre 引擎 框架追踪 第五章 资源加载之实加载
前一章 ogre 引擎 框架追踪 第四章 资源加载之资源组初始化作为资源加载的第三期,进入ogre场景主体的真正的加载环节:创建场景。 当然该环节是先创建场景管理器。mSceneMgr = mRoot->createSceneManager(ST_GENERIC, "ExampleSMInstance");root调用的SceneManagerEnumerator创建的,具体代码为SceneMa原创 2016-11-30 18:22:42 · 1094 阅读 · 0 评论 -
关于资源组管理器、资源管理器、资源的关系及ogre中关于资源的继承关系
资源组管理器中包含资源管理器的map、资源组的map及加载顺序加载器map(主要是这三个)等。 其中 资源组map,保存着资源组名称及对应的资源组信息(资源组状态、声明资源列表、加载资源map、资源路径列表) 资源管理器map保存着所有的已注册资源管理器。已有的资源管理器:CompositorManager、FontManager、HighLevelGpuProgramManager、Mater原创 2016-11-30 13:56:55 · 691 阅读 · 0 评论 -
ogre 引擎 框架追踪 第四章 资源加载之资源组初始化
ogre 引擎 框架追踪 第三章 资源加载之虚加载 前面写到的,资源的操作过程如下: 创建资源管理器->继承不同资源管理器的创建->向资源管理器添加路径->初始化已添加路径的资源->初始化资源->加载资源->渲染资源。 第二章的虚加载,已经将资源的路径添加到group并且保存好文件名与archive对象的对应关系。接下来跟一下资源的初始化。 以笨蛋化的初始化为例Ogre::Resourc原创 2016-11-30 09:41:09 · 721 阅读 · 0 评论 -
32 bit hardware buffers are not allowed in OpenGL ES
是gles不支持32位的buffer,gpu的原因。解决方案,要么换成gles2的,要么把mesh导出成16位的原创 2016-06-22 12:26:48 · 477 阅读 · 0 评论 -
Ogre2.1 结合OpenGL3+高效渲染
在DX10与OpenGL3+之前,二者都是固定管线与可编程管线的混合,其中对应Ogre1.x的版本,也是结合固定与可编程管线设计.转眼到了OpenGL3+与DX10后,固定管线都被移除了,相对应着色器的功能进一步完善与扩充,对应Ogre2.x包装DX11与OpenGL3+,完全抛弃固定管线的内容,专门针对可编程管线封装. Ogre1.x的渲染流程一直是大家吐槽的对象,除开用Ogre1.x转载 2016-04-04 21:41:05 · 2613 阅读 · 0 评论 -
Ogre2.1 灯光与阴影
Ogre2.1大量光源渲染 Ogre2.1不是采用现在大部分引擎所用的延迟渲染,而是采用一种前向渲染的改进技术,理论基本来自于Forward+,见如下。 http://www.klayge.org/?p=1895 http://www.ogre3d.org/2015/03/05/ogre-progress-report-february-2015 第一个链接转载 2016-01-08 11:58:10 · 965 阅读 · 0 评论 -
ogre dx模式,创建设备失败 -2005530516
InvalidCall -2005530516 Method call is invalid; for example, a method's parameter might not be a valid pointer. 有不识别的参数。我的就是把 fullscreen变成false就好了。另外:一般dx的错误Member Value Description Invali原创 2016-01-15 17:28:38 · 1114 阅读 · 0 评论 -
OGRE SampleBrowser框架解析
——OGRE SampleBrowser框架解析 “伟大航路,我把世界上的一切都放在了那里,有种的话就去领取吧” 这是OGRE中文网的一则广告,我想,无论作为OGRE的学习者还是漫漫人生的一名旅人,这句话都是非常不错的激励语。放在这,是否能够让你隐约看到属于自己的新世界?简介 Ogre(Object-oriented Graphics Rendering Engine)是一款优秀的C++开源转载 2015-11-20 11:14:00 · 473 阅读 · 0 评论 -
ogre 引擎 框架追踪 第一章 root的创建
使用ogre引擎很久了,对于渲染过程基本了解,但是没有详细到一定程度。终于有时间整理一下了,顺便达到一个秘密的目的。版本ogre 1.8.1. ogre 从流程上分为初始化、场景渲染、渲染结束(关闭场景)。初始化从root创建开始。#ifdef _DEBUG mRoot = new Root("plugins_d.cfg");#else mRoot= new Ogre::Root原创 2016-11-23 10:40:56 · 1646 阅读 · 1 评论 -
ogre 引擎 框架追踪 第二章 初始化
链接:第一章 第一章中已经创建完root,ogre渲染所需的管理器基本创建,动态库已经加载。 管理器有了,渲染系统有了,下面就是往管理器中塞东西,选择渲染系统,并且创建窗口并渲染了。1、选择渲染系统并设置系统已经加载了渲染系统(dx、gl),现在就是选择一个系统并设置,个人喜好的设置dx//系统已经加载了渲染系统(dx、gl),现在就是选择一个系统并设置,个人喜好的设置dx#if MyRend原创 2016-11-24 18:49:17 · 1389 阅读 · 0 评论 -
四元数的球面差值 ogre
////对四元数进行球面插值运算,t>0&&t Quaternion InterQua(Quaternion from,Quaternion to,float t) { if (t>=1) { t=0.9999; } else if (t0) { t=0.原创 2018-01-17 09:11:17 · 450 阅读 · 0 评论 -
ogre 阴影技术分析记录
阴影技术,一般分为 基于 shadow volume 的和基于shadow map的。shadow volume 原理是 通过模型EdgeData 计算阴影空间 shadow map原理是在灯光下,计算出物体在地面的区域,设定好颜色,动态纹理(阴影纹理)的形式叠加到接收阴影的物体上。 过程如下: 在场景管理器渲染开始时,创建阴影纹理。 mSceneMgr->_renderScene中调用 i原创 2017-12-20 14:06:43 · 364 阅读 · 0 评论 -
cg 语言之扇形径向模糊
sampler2D RT : register(s0);sampler3D noiseVol : register(s1);///////////////////////////////////入口函数float4 Distortion_ps(//in float4 pos : POSITION, float2 iTexCoord : TEXCOORD0原创 2017-11-29 15:12:27 · 293 阅读 · 0 评论 -
记录ogre中gpu程序在compositor中使用问题
ogre中通过更改gpu程序中的参数,获取到自己想要的渲染效果。在使用到compositor中时,跟一般通过材质中fragmentprogram更改是不同的。需要在某个compositor的监听函数中,更改参数。 参考ogre的compositor例子,新建监听类并继承自Ogre::CompositorInstance::Listener,由于我需要的是在每一帧更改参数,所以重写了notifyMa原创 2017-11-16 11:53:26 · 276 阅读 · 0 评论 -
ogre 欧拉角四元数之间的转换
欧拉角与四元数是什么我就不再赘述,下面是欧拉角与四元数之间的转换。记得参考过某个博客,但是找不到在哪了。。。#define CLAMP(x , min , max) ((x) > (max) ? (max) : ((x) < (min) ? (min) : x)) Ogre::Quaternion EulerToQuaternion(Ogre::Real xangle,Ogre::Rea原创 2015-07-13 10:10:44 · 840 阅读 · 0 评论 -
EglSwapBuffers exception on Android (EGL_BAD_CONTEXT )
ogre 1.9 在通过ndk方式做Android程序时,黑屏不渲染,且程序死掉。 报错如下01-02 01:02:10.055: I/OGRE(16742): EGL error 0x3006 in virtual void Ogre::EGLWindow::swapBuffers(bool) at line 320 in ..\..\..\RenderSystems\GLES\src\EGL\原创 2017-06-28 10:50:03 · 2273 阅读 · 4 评论 -
基于OGRE的B超实现
效果如图。原创 2017-04-24 10:18:51 · 393 阅读 · 0 评论 -
ogre 引擎 框架追踪 第三章 资源加载之虚加载
前序 ogre 引擎 框架追踪 第二章 初始化前面两章已经创建root、加载dll、创建渲染系统、创建渲染窗口。这章,我们该往整个框架里塞东西了。ogre1.8用的单线程,不支持后台加载。关于资源的操作就是: 创建资源管理器->继承不同资源管理器的创建->向资源管理器添加路径->初始化已添加路径的资源->加载资源->渲染资源。 前面两步已经在前面实现,接下来的开始添加路径。1、ogre资源的路径原创 2016-11-28 17:15:34 · 771 阅读 · 0 评论 -
ogre 引擎 框架追踪 第七章 渲染流程之compositor
ogre 引擎 框架追踪 第六章 渲染流程 上一章跟踪了ogre在渲染一帧时主要做的事情,并没有对某个特殊处理进行跟踪。比如顶点动画的播放控制、比如gpu程序vertext program与fragment program怎么在渲染过程中起作用的,比如compositor是渲染过程中怎么处理的。compositor脚本内容如下compositor BC_B&W{ technique原创 2016-12-09 16:12:17 · 1865 阅读 · 0 评论 -
ogre 引擎 框架追踪 第六章 渲染流程
ogre 引擎 框架追踪 第五章 资源加载之实加载ogre的监听模式在渲染流程中得到大量的应用。 自己控制渲染时候可以在mfc的ontimer或者while语句中,直接调用root的renderOneFrame函数。bool Root::renderOneFrame(void) { if(!_fireFrameStarted())//开始 retur原创 2016-12-01 13:36:54 · 2263 阅读 · 1 评论 -
关于3D引擎中的多线程渲染(Multithreaded-Rendering)
http://blog.csdn.net/pizi0475/article/details/7764916困扰了一个多月的问题,今天终于有个阶段性的了结了,虽然不知道算不算真正的了结.多核的cpu现在是大势所趋,渲染是一个很费时的活,所以应该考虑考虑能不能利用多核来提升这部分的性能.引擎一开始没有在多线程方面作任何的考虑,因为我从来就不喜欢多线程,这方面的思考能力不强,而且一开转载 2015-11-02 10:39:15 · 8416 阅读 · 0 评论 -
基于多核平台优化的OGRE 3D渲染引擎
基于多核平台优化的OGRE 3D渲染引擎陈天洲1+,陈学亮1, 施青松11(浙江大学计算机学院,浙江杭州,310027)摘 要:近年来,随着计算机体系结构的发展,多核平台的应用越来越广泛。多核平台与并行计算理论结合,以多线程的方式有效的提高了应用程序性能。本文针对图形领域中广为使用的OGRE 3D渲染引擎,从多帧渲染、循环迭代、函数调用三个方面进行多线程并行优化,并在多核平台上进行测试转载 2015-11-02 09:46:01 · 992 阅读 · 0 评论 -
【Ogre编程入门与进阶】第十六章 GPU编程
从本章开始,将进入可编程流水线的学习。一般在图形渲染时可以通过两种途径来实现,一种称为固定功能流水线(Fixed Function Pipeline),另一种就是从本章开始要介绍的可编程流水线(Programmable Pipeline),使用可编程流水线技术进行的程序设计我们也可以称为GPU编程。 在前面的示例程序中我们所采用的方法都是固定功能流水线,当我们使用固定功能流转载 2015-07-21 15:23:29 · 754 阅读 · 0 评论 -
pitch yaw roll
三维空间的右手笛卡尔坐标如图1所示。图1在航空中,pitch, yaw, roll如图2所示。pitch是围绕X轴旋转,也叫做俯仰角,如图3所示。yaw是围绕Y轴旋转,也叫偏航角,如图4所示。roll是围绕Z轴旋转,也叫翻滚角,如图5所示。图2图3图4图5转载 2015-08-01 16:32:26 · 381 阅读 · 0 评论 -
particle universe与ogre结合过程中的问题
particle universe下载地址 点击下载(编译好的,环境也配好了)首先配环境。将ogre的include包含到三个项目中,库目录包含到项目中包含目录$(OGRE_HOME)\include;$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;$(OGRE_HOME)\Samples\Common\in原创 2015-07-18 08:56:49 · 592 阅读 · 0 评论 -
paricle universe 在ogre中的配置
转自:http://www.cnblogs.com/leexuzhi/archive/2012/08/26/2657763.html游戏中的粒子系统常用来被创建各种炫丽多姿的特效,例如魔法效果,闪电,火焰,火舌,光环,雨雪,落叶等等,其重要程度不言自明。但很多初学者对粒子系统的使用仍是一头茫然,这大多也都是因为多数书籍上只是介绍了粒子系统的原理和简单的效果实现,例如最简单的礼花效果等等,很转载 2015-07-18 08:30:10 · 490 阅读 · 0 评论 -
ogre Exporters for maya
ogre官网的导出插件介绍 ogreSceneExporter主要是下面一个,可以导出线,只要导出时候选择edges项。原创 2015-07-17 09:50:05 · 851 阅读 · 0 评论 -
ogre shadow 函数
通过场景编辑器设置的阴影函数做个笔记//设置阴影技术 默认SHADOWTYPE_NONEsetShadowTechnique(ShadowTechnique technique)//设置阴影颜色setShadowColour(const ColourValue& colour);//设置有向灯光距离对阴影的挤压影响setShadowDirectionalLightExtrusionDist原创 2015-07-14 13:54:13 · 690 阅读 · 0 评论 -
ogre shadow(阴影)函数笔记
开启阴影模式 场景管理器 mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); mSceneMgr->setShadowColour(ColourValue(0.4,0.4,0.4)); if (mRoot->getRenderSystem()->getCapabilities()->hasCapability(RSC_HWRENDER_原创 2015-07-14 11:44:35 · 1292 阅读 · 0 评论 -
ogre 抗锯齿设置
ogre初始化root时候可以进行设置 Ogre::NameValuePairList misc; misc["externalWindowHandle"] = Ogre::StringConverter::toString((int)hWnd); misc["left"]="0"; misc["top"]="0"; misc["VSync"]="Yes"; misc原创 2015-07-06 11:22:32 · 920 阅读 · 0 评论 -
ogre 1.8.1 camera 类
想用ogre的camera类设置成可以将观察平面设置到远近剪切面之间,所以整理一下相机类,部分参考自http://blog.csdn.net/w1635610/article/details/5446058只整理public函数: /** Standard constructor. */ Camera( const String& name, Sce原创 2015-03-09 14:49:09 · 1171 阅读 · 0 评论 -
vs2010下ogre1.8.1+bullet-2.82
OgreBullet已经很久没人更新,看到主页上的配置ogre与bullet的都比较旧,于是参考文章Building OgreBullet with OgreSDK 1.8.1 on Windows.。期间遇到的问题颇多,但最终成功,先看效果图吧。 首先是下载安装ogre1.8.1、bullet-2.82与OgreBulletogreSDK1.8.1可以直接下载安装ogreSDK1.8.1 下载原创 2015-05-26 14:10:36 · 1754 阅读 · 0 评论 -
Ogre gpu程序
http://blog.csdn.net/ldpxxx/article/details/7855165首先通过通路获得gpu程序和gpu程序参数:Ogre::GpuProgramPtr mActiveVertexProgram = mActivePass->getVertexProgram();Ogre::GpuProgramParameterPtr mActiveVe转载 2015-07-21 16:03:53 · 437 阅读 · 0 评论 -
沿着ogre来实现material system(一)
http://www.cnblogs.com/kfqcome/archive/2011/08/15/2139727.html自从以前看了clayman的博客后,就很想把自己代码里dx的effect框架替代掉。如今实习结束正好有短暂的自由时间,所以就ogre的material开刀吧。 山寨代码也是有学问的,如果你想搞明白这些代码的含义的话,最后之前就对这些已经有了一定的使用经历转载 2015-07-21 16:45:29 · 717 阅读 · 0 评论 -
OGRE关于 Demo_DeferedShading 例子的分析
总结:1. 可以学会克隆一个实体的方法2. 可以根据雅典娜的材质得知顶点着色器的使用, 在事先构建的切线数据(buildTangentVectors)放置于 着色程序的属性 tangent中, 着色程序就可以直接使用该属性3. 学会如何创建一个曲面, 用MovablePlane.4. 实体调用setMeshLodBias设置LOD, 数值越小则越清晰.5. 实现如何创建一个转载 2015-11-02 09:25:43 · 328 阅读 · 0 评论 -
OgreSDK_Android_v1-9-0RC1 --Android 环境搭建
第一步 ,配置所需Android环境:1. adt 本文采用adt-bundle-windows-x86-20130522 打开链接2. ndk 本文采用r8d ndk3、OgreSDK_Android_v1-9-0RC1 可以官网下载,也可以在云盘下载 链接:http://pan.baidu.com/s/1kT91uHh 密码:t6ar4、java所需环境 jdk ,用原创 2015-10-16 10:24:18 · 1945 阅读 · 2 评论 -
AMD发布LiquidVR SDK 1.0 提供即插即用的虚拟现实体验--看看最新的虚拟现实
本周,AMD公布了该公司在虚拟现实领域的最新进展,并且推出了LiquidVR SDK 1.0。 通过该SDK,开发人员们将能够用上最新的数据锁存器、异步着色器、友好的多GPU访问、以及“屏幕直达”(direct-to-display)等技术。此外,高效的头部追踪功能还可以最大程度地减少画面拖影、减少系统旁路负载、并且大幅提升质量,以便为用户带来全面、无缝、以及即插即用的虚拟现实体验。转载 2015-10-29 16:11:23 · 858 阅读 · 0 评论 -
非纯c++模式实现ogre1.9的Android版
上篇实现了纯c++的ogre1.9的Android版。但是由于需要用到java的按钮、网络等其他java的实现方式,不如将ogre专门作为一个纯3d渲染模块。主要思路就是通过java启动一个专用于ogre渲染的surface,并在ogre初始化完成后,加入一个渲染循环,调用root的renderOneFrame。 难点就是怎么将java的surface给了ogre,并由ogre去创建渲染窗口。另外原创 2015-10-28 17:10:35 · 757 阅读 · 0 评论 -
ogre 不常用类记录之Serializer
一、Serializer 位置:OgreSerializer.h 主功能:读写文件 从它继承的类有:MeshSerializerImpl,SkeletonSerializer,GpuNamedConstantsSerializer。同时它又是继承自SerializerAlloc(一种内存管理模式,MaterialSerializer也继承自它)。 也就是ogre里涉及的文件,包括mesh、g原创 2015-11-06 14:32:55 · 353 阅读 · 0 评论