Ogre的渲染系统

作者:盛崇山
http://antsam.blogone.net
[email protected]
渲染系统个人认为就是同图形学有关的一切系统;包括了geometry system、material system、shader system。Rendering system分为两部分:API无关的部分和API相关部分。后者主要是只同DirectX和OpenGL相关的系统。前者则是两个的共同的特性。API无关部分同Pipeline Abstraction 有很大的关系,API的部分功能就是设置Pipeline (Pipeline configuration),Pipeline可以参考《Pipeline Design》。 既然是Render System必然是有Target的,我们前面把Scene Manager比喻成舞台跟导演,那么Render System就是摄影机,而胶片就是Render Target。先让我们看一下相关类的UML图,然后在详细这些类以及相互之间的关系。

一、Render System UML图
Render System相关类UML Part one:

图一:Render System相关类UML Part one


图一中的类View Port包含了一个Camera,另外一个同Render System相关的类(未画出,图中只有一根聚合的关系线)Root。前面说过把Render System比喻成摄影机,现在我们进一步的细化:View Port和Camera就是摄影机的摄像头,Render Target就是胶带,那么Render System就是一个光学系统,它把从摄像头进来的光进行处理变换,然后再把结果写到Render Target中,而Root就是各种各样的道具;那么,演员呢?演员就是游戏中的各种角色;电影剧本对应的是游戏剧本(或者称为策划);化妆师对应的则是美工和建模人员;电影的音乐也越来越重要了,这就类似于游戏中的音乐。
Good(^_^),现在让我们想象一下,我们在拍摄现场:
导演 Scene Manager
摄影机 Render System(including view port、camera、target)
灯光、道具、服装 Root(engine or Resource Manager)
演员 游戏中的角色(mesh、entity)
化妆师 美工和建模人员
剧本 游戏策划
电影音乐 游戏音乐
从上面可以看出电影公司和游戏制作公司非常相似,那么一个基本的游戏引擎应该至少包括前面的四项,在《场景组织分析》那篇文章中从功能上对导演和Scene Manager进行了类比,我们将在对Render System具体的分析后在进行类比。

Render Target的UML图如下所示:

图二: Render System相关类UML图 Part two


电影的胶片不同,Render Target也有不同(^_^)。在上面的两幅图中还有两个listener类应该注意一下,我们将在下面的详细分析中再做具体的分析。
二、详细分析

你可能感兴趣的:(OGRE)