Ogre内部的渲染流程(二)

具体流程如下:
首先Ogre引擎在启动时会根据配置创建一个合适的场景管理器(SceneManager),SceneManager会自动创建一个根节点对象(SceneNode),有了这个root node 我们就可以在这个 root node下创建场景节点并将3D渲染实体附加到节点上。应用程序可以在任意节点下创建子节点,创建之后将3D渲染实体附加到此节点上。在SceneNode内部,保存着一个MoveableObject列表,由于Entity是从MoveableObject继承过来,所以可以把Entity附着在SceneNode上,同时,Entity内部包含一个SubEntity的列表,而SubEntity是从Renderable继承过来,这样在场景更新时,首先调用SceneNode的 _addToRenderQueue 方法,这个方法内部迭代MoveableObject列表的每一项,调用MoveableObject的_updateRenderQueue抽象方法,每个从MoveableObject继承的类都要实现此方法,比如Entity,在Entity的这个方法内部,迭代SubEntity列表的每一项(SubEnbtity从Renderable继承),将每个SubEntity送入渲染队列中去,这样就完成了渲染队列的更新工作。以上说明只是很粗略的描述,具体还有许多细节没有说明,比如进行可视判断,是否透明物体,是否为骨骼节点等等,但主要的流程是这样的。下一部份我将会说明加入渲染队列之后的内部流程。
Advertisements
此条目发表在3D图形分类目录。将固定链接加入收藏夹。

One Response to Ogre内部的渲染流程(二)

  1. hongtao说道:

     在google里面看到了你的信息,也把我引到了这里, 我也喜欢玩些3D的东西,但玩的很差,应该说是入门级的。希望能多写些OGRE的东西,特别是RenderPriorityGroup这个类。
        在这里对你表示感谢,真诚的感谢。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s