第二个例子使用的是
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在向导程序这个进的太快了。