摘要:
布告板(Billboard)Ogre中的布告板简单的来讲就是场景中的一个四边形,但它的朝向与相机有关。通常布告板随着相机的视方向旋转以便与相机的视线方向对齐。把布告板放在场景的任何地方,它将会朝向相机。为了效率考虑,布告板与相机的视线方向对齐,而不是与从布告板到相机的向量对齐。大部分情况下两者没有明显的区别。如果想使用后一种的对齐形式,也可以办到,但在性能会有所降低。布告板集(Billboard Sets)布告板不能独立存在,他们也不能自我渲染。他们必须属于某个布告板集。布告板集可认为是一组布告板的管理器,布告板集内的所有布告板有相同的尺寸,使用相同的材质。相同的尺寸,相同的纹理会带来计算与渲 阅读全文
摘要:
OGRE渲染对象Ogre中的render target 只是共享AGP内存或显存的某个区域的抽象,这个区域中保存着全部或部分场景2D渲染结果。最普通的render target是主渲染窗口,这是应用程序的主窗口。使用这个render target不需要做太多另外的努力,ogre可以帮我们创建它。还可以把场景中的全部或部分(甚至是场景中不可见的部分)渲染到一个纹理,这个纹理可以被场景中的其他多边形使用。目标硬件缓冲在ogre中抽象为render target,它的物理显示可以为主渲染窗口,也可以是副窗口,也可以是非可视的:纹理。渲染对象也是事件源,假如程序注册了这事件,ogre会在pre- 和 阅读全文
摘要:
概述动画,总的来讲,在计算机发展的各个阶段,与艺术家们快速浏览一系列彼此稍微不同的图片从而产生运动的幻觉的行为没有什么不同。1872年,Eadweard Muybridge给奔跑的马拍了一组连续的照片,从而证明了马在奔跑时会四脚同时离地。这是一系列的图片流可以产生运动幻觉的最早的文档化的记录。现在在Ogre中,不必小题大作地装配一些设备来创造这种运动幻觉了。只需要每帧少量地移动或变形场景中的数据,幻觉就产生了。它确实只是幻觉。ogre不跟踪对象的速度,加速度,或是角色的胳膊是在抬起或是叉着腰。ogre逐帧来处理位置与朝向。ogre能为你做的是帮你重新播放这些动画。这些动画可以是用离线工具制作的 阅读全文
摘要:
基本对象着色材质,简单的来讲就是定义了被赋于此材质的对象如何反射光。ogre中的光照采用局部光照模型,这意味着,对计算有影响的因素有:光照的角度与光的颜色,相机的视角,对象的材质。ogre支持四种类型用来描述材质的颜色,表述了光照对它的影响:环境光,漫反射,发散,镜面反射。环境光是对全局光照的近似,漫反射是指当物体被光照射后在物体各方向上反射的光的颜色。发散指物体本身自发光的颜色。镜面反射,指的是在某个视角看到的被光反射出的“高光”。镜面高光有两个参数可以控power,shininess.power用来控制“加亮点”的尺寸(影响的范围越大)。而shininess值越大的表面,高光越容易聚集。纹 阅读全文
摘要:
材质复制如果新的脚本只是对某个已经存在的脚本进行小部分的变化,那么可进行从旧脚本复制,而不是C&P。新材质可以修改特定technique,pass,texture,或是添加新项。格式: material <NewUniqueChildName> : <ReferanceParentMaterial>当材质脚本被加载到ogre中,这种继承关系不再维系,假如父材质在运行时被修改,不会影响到子材质。如果在一个technique中有5个pass,而我们只想修改第5个pass,我们可以用pass指定或是它的索引(从0计)meterial test2: test1{ techniq 阅读全文
摘要:
资源组命名组可以作为一个整体加载与卸载。在加载,卸载,初始化时把把组中的所有资源作为一个执行单位来看待,而不是逐个进行处理。资源组管理纯粹是了为了管理上的方便,是否使用组的方式与性能无关。假如向资源组管理器中加入了资源位置而没有指定组名,那么这些资源位置被放入"General"组中。资源组与世界几何缺省情况下,ogre把加载的世界几何放入"General"组。也可以覆盖(override)这种方式,使得对世界几何的管理像其他资源的管理方式一样。统一的场景管理器可以提供关于装载世界总步骤的线索,这样就可以在关卡加载时,提供精确的以进度条显示的反馈信息。资源 阅读全文
摘要:
阴影技术Ogre支持两种主流的动态阴影技术,模板(stencil)阴影与纹理(texture)阴影,每一种都有两个变体:modulative 与additive。这四种技术完全兼容固定函数图形流水线,因此不需要可编程GPU支持。然而,可利用GPU程序进行加速。在场景中只有使用一种阴影技术,应该在场景渲染这前进行阴影技术相关设置(最好是在创建场景管理器之间)。通过调用SceneManager::setShadowTechnique()来设置技术,参数指定技术的具体类型。阴影技术缺省情况下被关闭。对于物体,投射与接收阴影可以在材质中控制,也可以控制物体自己对自己投射。由于模板阴影算法的本质特征,透 阅读全文
摘要:
粒子系统ogre中的粒子系统既可用脚本描述,也可用代码完成。用粒子脚本定义的粒子系统实际上是个模板,因此它定义的粒子系统可在程序中方便地重用。粒子系统与场景粒子系统会被挂到场景结点上,因此,结点的平移,缩放,旋转会关联到粒子系统,影响粒子反射的向。粒子会被发射到世界空间中,这意味着当场景移动时,它会牵连到发射器,但已经发射出去的粒子不受影响。假如需要这些粒子受结点的影响,可以把粒子发射到本地空间(local space)中。粒子系统不能无限制的发射粒子,它有一个限额(quota)。一旦到达限额,粒子系统不会再发射粒子,直到已经存在的粒子消亡。缺省的限额是10。粒子系统约束(Bounds)粒子系 阅读全文
摘要:
场景查询创建查询的代价比较大,而执行不是。SceneQueryResualt只定义了两种成员:movables与worldFragments.掩码也需要自己定义,自己解释。在一个轴对齐盒子中查询灯光的例子如下:const unsigned int LIGHT_QUERY_MASK = 0x00000001; //掩码定义Light* light1 = mSceneMgr->createLight("Light1");Light* light2 = mSceneMgr->createLight("Light2");light1->setP 阅读全文
摘要:
Ogre中的地形使用terrain.cfg WorldTexture=terrain_texture.jpg //地形纹理DetailTexture=terrain_detail.jpg //细节纹理DetailTile=3 //细节纹理在一个地形小块中的平铺数PageSource=Heightmap //高度图数据源Heightmap.image=terrain.png //高度图名称,符合2^n+1PageSize=513 //高度图大小TileSize=65 //地形小块大小MaxPixelError=3 //决定使用层次细节时充许误差PageWorldX=1500 //地形在世界中的范 阅读全文