OgreRoot

来源:互联网 发布:成都软件学院 编辑:程序博客网 时间:2024/05/01 15:05
   OgreRoot相当于总的主管。
createSceneManager() - 创建场景管理器
getTimer() - 获取时间
getSingleton() - 获取单件引用
showConfigDialog() - 显示配置对话框
restoreConfig() - 恢复配置
initialise() - 初始化窗口


事件与实体,绑定。动态绑定,静态绑定。
封装应用逻辑,可获取root
                    SceneManager
                    ResourceManager
                    RenderWindow
SceneManager
createCamera() - 创建摄影机
createEntity() - 创建实体
createLight() - 创建光源
createMovableObject() - 创建移动对象
createParticleSystem() - 创建粒子系统
createRayQuery() - 创建射线查询器


setAmbientLight() - 设置环境光
setFog() - 设置雾
setShadowColor() - 设置阴影颜色
setShadowTechnique() - 设置阴影Technique
setSkyDome() - 设置天空穹
showBoundingBoxes() - 显示包围盒


//设置阴影
Ogre::SHADOWTYPE_STENCIL_ADDITIVE 模板阴影
SceneManager::setShadowTechnique(
MoveableObject Entity
SceneNode


要渲染用Renderble, 
    Renderble是静态的。不移动的。


要移动用Movable
即渲染又移动SimpleRenderable, 多继承


Ogre::SceneNode  场景结点
Ogre::BspSceneNode 静态场景结点
Ogre::OctreeNode 八叉树室外场景结点
Ogre::PCZSceneNode 室内场景
detachObject() 解绑,支持换装
               比如换刀,换盔甲等。
showBoudingBox 显示包围盒


每个Entity都有Listener,特定的事件可以
为特定的Entity来编写。
      这样就分开了,属于事件驱动。
实际上控制的变化,都在Listener内。
Listener与摄影机发生交互,那就可以将Listener与摄影机合并。
而如果是特定实体的事件,则可以将Lisener绑定到实体上。
而实体不需要时则可以解绑。
    这样事件是可复用的。所以逻辑算法基本上就是控制
    Lisener。
Entity::getListener
Entity::setListener(); 添加一个事件
SceneNode::setListner(); 添加一个事件
SceneNode::getListner(); 获取一个事件
各种Listener 监听器
FrameListener 帧监听器
WindowEventListener 管理窗体事件
RenderTargetListner()


Effects 效果
Compositor 效果后期合成等
Partical 粒子
Billboard 公告板
Materials 材质,真实感都与材质算法有关。
Math 是数学库是实现具体算法的。
Overlay 


RTShader - 可编程,用于效果处理





0 0
原创粉丝点击