经过以上三个阶段的处理,借由AbstractTreeBuilder类对象,Ogre终于“理解”了指定的脚本文件究竟包含了哪些脚本对象,以及这些脚本对象间的相互关系。需要强调的是,此时各脚本对象所包含的内部数据并未被加载。在Ogre中,脚本对象与脚本对象内部数据,这两个概念是严格区分的。脚本对象与这个脚本对象中的数据,对应着脚本文件中的“同一段”内容。但脚本对象是解析过程中必不可少的一个数据抽象,只有借助它,才能有一个完整的“语义分析”过程,或者说“语义分析”才有一个落脚点。而脚本对象中的数据,以材质(material)为例,是要参与到后期的渲流程中去的;material实际上是实体类(Entity)的一个属性,material数据一旦被解析出来,就完全脱离了“脚本”和脚本对象而独立存在了。因此,对于脚本所描述的材质对象,在Ogre中有两个对象类型与之对应,它们分别是ObjectAbstractNode和Material。 经过以上三个阶段的处理,借由AbstractTreeBuilder类对象,Ogre终