GB学习【2】--基本的NiStream读取

来源:互联网 发布:小刀资源网源码 编辑:程序博客网 时间:2024/05/16 08:32

第二个例子使用的是
NiSample这个框架封装。
它是继承自NiApplication.在Application的基础上加入一些额外的东西。
比如一些UI.摄像机导航.还有shader系统的基本建立。看他的sdk.貌似这个只是他自己用来

演示用的。不过如果打算自己写新工程。倒是也可以借鉴这个。
这个例子的重点其实是NiStream.和GB的资源用途。
看代码非常简单的使用NiStream读取一个预先做好的World.nif.

看了一下NiStream的读取过程。发现他是按照下面的顺序来存放数据
Header   //用于版本
RTTI   //用于转换类型
ObjectSizeTable  //用于构造表格分配内存
FixedStringTable //暂时不知道干嘛
ObjectGroups  //引擎内部用来分配的也不大清楚干嘛
objectData  //然后对读取每一个对象的具体属性
TopLevelObjects  //读取顶层对象 看上去貌似是UI
//后面不断的链接对象。还不大明白他的linkobject和postlinkobject干嘛用
然后使用注册过的转换函数来兼容高低版本

 

一个简单的streamload可以引申出很多东西。看来GB还真是一个高内聚啊。但是对于要研究他内部的人来。太郁闷了。一开始就一大堆东西。个人觉得GB在向导程序这个进的太快了。