随笔分类 - Ogre
摘要:从MovableObject继承的所有类
阅读全文
摘要:3D模板阴影原理 1:先从3dsMax中导出一个简单的场景,一个园环,球,平面。 2:园环直接面向光源,园环对球体来说是一个光线的阻挡物,园环在它上面形成阴影,同时,园环和球体对平面来说是光线的阻挡物,所以,同时在其上面形成阴影。3: 要产生模板阴影,先要找出在园环和球体上面面向光线的面,去除背向光线的面,通过测试光线同园环和球体上面每一个所组成的小角形的法线的夹角是否小于90度,即光线矢量同法线矢量的点积要大于零。 4:在余下的所有面向光线的面中,把每个面的每条边可以保存到一个Vector中,不过在保存之前,先把该条边同已保存在Vector中的每条边先进行逐一比较,如果,找到的这条边同它的两
阅读全文
摘要:有人说没有开过车就造不出好车,没有有过游戏引擎就写不出好的引擎。所以最近开始学习OGRE,网上很多资料,但是又有点让人无从下手。最后决定还是从pro ogre 3d programing开始看,是中文翻译的版本。看到第五章,里面有个创建地形的例子,可能由于打字或者是版本的问题,电子书上面贴的代码有点问题,修改了一下才能运行。用ogre pplication Wizard生成代码修改void yourclass::createScene()createScenevoid yourclass::createScene(void){// Set ambient light mScene...
阅读全文
摘要:Ogre 安装 配置 问题1. SampleBrowser 编译错误: 编译orge工程的时候,会出现这样一个错误:系统找不到指定的路径Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event..." 这个错误估计比较常见,尤其是对VS不太熟的话就不知这个Pre-Link从哪查起。这个时候,我们查看SampleBrowser这个工程的属性,展开Debug Events,进入Pre-Link Events 下,你会发现下在右侧的Command栏里一串命令。这串命
阅读全文
摘要:At the very top of the diagram is the Root object. This is your 'way in' to the OGRE system, and it's where you tend to create the top-level objects that you need to deal with, like scene managers, rendering systems and render windows, loading plugins, all the fundamental stuff. If you d
阅读全文
摘要:由于本人的引擎ProjectGaia服务于08年创新杯的游戏项目 – 3D太空游戏,所以理所应当加入Octree(八叉树 – 已经周宁学长发帖介绍过)场景管理器.参考了无数Octree的代码,发现还是我们可爱的Ogre写的最好,于是狂看n千行代码,把精髓提取出来给大家共享.鉴于我们游戏版教程又n久没有更新了,今天发一篇我对Ogre场景管理器之Octree源代码分析的笔记.所有代码采用伪代码.首先回顾一下Ogre场景管理的架构Ogre以插件形式提供了多种场景管理器1. BSP管理用于支持Quake系列2. Terrain管理,优化大型的地形场景3. Octree管理,用处多多,很适合太空游戏4.
阅读全文
摘要:场景图与场景内容分离虽然没有得到权威的论证,但我还是坚信场景图和场景内容的分离的设计一定是整个Ogre项目中最亮眼的地方。虽然看起来它是一个如此的简单易懂,不过对于那些仍然坚守“传统的设计方法”来完成场景图设计的人仍然会难以理解。在传统设计中(就是很多商业和开源3D引擎所采用的)将场景内容和场景结构放到一个继承体系中,并将场景内容生硬的作为场景节点的子类。我断言这是一个极其失败的设计方案。如果不修改所有的子类,基本上是没有办法更改或者扩充图形算法的,因此让修改基类的接口非常困难,进而导致以后的维护工作变得举步维艰。此外这种“所有节点源自同一节点类型”的设计思想会让整个程序变得凝固且难以复用(至
阅读全文
摘要:Root:是ORGE核心系统的一部分,必须在所有ORGE对象产生之前初始化,并在所有ORGE对象销毁之后销毁,用来配置系统。RenderSystem:是用来发送渲染操作的系统。它是一个抽象类,而另外拥有不同的实现。(OpenGL, DirectX)。SceneManager:除Root对象外最重要的ORGE部件。它创建和管理摄象机,可移动物体,灯光和材质,以及不可移动的场景的材质(如天空,大地)。SceneManager保存了各种物体的列表,以便处理物体之间的关系。应用程序无须为之操心。SceneManager还把场景发送到RenderSystem里进行渲染。它确定哪些物体需要绘制,生成一个场
阅读全文