您的位置:首页 > 其它

Ogre 1.8 Static Geomety /Instanced Geometry

2012-03-02 13:50 169 查看
这个头文件是OgreStaticGeometry.h

主要定义了StaticGeometry这个类。现代的GPU都针对大块的静态图形进行了优化,显示10个1000个顶点的数据集和1000个10个顶点的数据集花的时间不在一个数量级上。所以有必要在程序中组织这个大块的静态几何体。

这个静态几何体并不是世界静态几何体(例如地形),这个更小范围一点,例如一些篱笆(有很多个互相不发生位移的部分组成),一个房子(有很多个部件),特点都是互相不发生位移,要移动也是作为一个整体;要显示则是一起显示,要不显示就一起不显示。这个静态集合体就是把本来的一些独立的几何体集合成一个一起行动的整体,这个一起行动包括位置、朝向、放大缩小、LOD等,其实就可以看成是一个几何体(Mesh),只是把不同的部位画在了不同的位置。

但是这个Static Geometry有几个明显的缺陷:1、无法相对移动内部物体。2、同个物体要显示100次的话就会有100次拷贝。

OgreInstancedGeometry.h

定义了类InstancedGeometry。解决了StaticGeometry的两个问题,但是要是这么好直接删除StaticGeometry多好。是有trade-off的,数据少,函数调用次数就多(但是还是比单独显示每个物体的函数调用次数少)Instancing是Ogre中实现的一套机制的名字,干啥的呢?一般情况一个MovableObject对应没有、一个或多个Rendable,Instancing是反过来的。不详细解释这个机制,知道就行了,这个机制存在的目的就是把场景中的一些东西组合送给GPU显示以加快速度。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图形 优化