游戏开发论坛

 找回密码
 立即注册
搜索
查看: 969|回复: 0

Ogre内部的渲染流程分析(3)(原创)

[复制链接]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-2-28 10:30:00 | 显示全部楼层 |阅读模式
具体流程如下:
首先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送入渲染队列中去,这样就完成了渲染队列的更新工作。以上说明只是很粗略的描述,具体还有许多细节没有说明,比如进行可视判断,是否透明物体,是否为骨骼节点等等,但主要的流程是这样的。下一部份我将会说明加入渲染队列之后的内部流程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 17:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表