什么是Content Pipeline
原文地址:http://msdn.microsoft.com/zh-cn/library/bb447745。
XNA Game Studio Content Pipeline是一组处理过程,这个处理过程发生在包含素材的游戏生成过程中。这个过程从素材的原始文件格式开始,借助于XNA框架类库,通过一系列处理将素材转换为XNA Game Studio可以使用的数据。
Content Pipeline可以被扩展,因此它可以很容易地支持新的文件格式和新的转换类型。
大多数XNA Game Studio开发者无需了解Content Pipeline的内部工作原理,XNA Game Studio支持大多数常见的素材类型和格式。但是,如果你想支持新的文件格式,还是需要理解Content Pipeline将素材从原始的DCC输出文件转换成二进制格式的过程。
Content Pipeline组件
当素材被添加到Content项目后就可以在XNA Game Studio游戏中使用了,只要素材是游戏解决方案的一部分,它就会包含在Content Pipeline中。
下图表示Content Pipeline的处理过程。
根据执行的先后,处理过程分成两种类型:设计时组件(design time components)和运行时组件(runtime components)。
下表是这两种组件的区别:
Activity | 设计时 | 运行时 |
---|---|---|
执行平台 | 开发计算机 | 游戏设备 |
运行在 | Visual Studio (Windows平台) | Windows,Xbox 360或Windows Phone |
使用的框架 | Content Pipeline Class Library | XNA library (redistributable) |
随游戏分发? | 否 | 是 |
设计时组件(Design-Time Components)
当你在Visual Studio中生成游戏的可执行文件时,Content Pipeline的设计时组件会处理素材。这个处理过程将素材从digital content creation (DCC)原始格式转换为游戏可以执行的托管代码对象。
设计时组件使用Content Pipeline Class Library,这个类库可以被扩展以创建自定义的Content Pipeline设计时组件。
导入器Importer | 导入器importer将素材从DCC文件格式转换为XNA Game Studio Content Document Object Model对象,而这个对象可以被标准的content processor处理,或者可以被自定义处理器处理的其他格式。 导入器通常会将素材转换成基于Content DOM的托管代码对象,这些对象包括meshes,vertices和materials,而自定义的导入器则会为一个自定义处理生成一个自定义对象。 |
素材处理器Content processor | 处理器processor 接受导入的特定类型的素材,例如一组mesh,然后将它们编译为托管代码对象,这些对象可以在Windows,Xbox 360或Windows Phone上被XNA Game Studio游戏加载和使用。每个处理器对应处理一种类型的对象,例如Effect Processor只负责处理 EffectContent对象,这个对象表示一个DirectX Effect素材。 |
当你在content项目中导入素材文件时,它的Properties页会选择合适的importer和processor。当生成游戏时(按F5),就会自动调用每个素材对应的importer和processor,这些素材会转换为在运行时可以加载的形式,而这个加载操作是通过ContentManager.Load方法实现的。
由处理器创建的托管代码对象被串行化为一个二进制格式(也可理解为一个中间格式)文件,这个文件的扩展名为.XNB。Content Pipeline的运行时组件会通过加载这个.XNB文件获取素材。
.XNB文件的格式与XNA Framework紧密捆绑,它并不是为其他运行时库设计的。
运行时组件(Runtime Components)
XNA Game Studio Content Pipeline的运行时组件(run-time components)支持加载和使用转换过的素材。这些运行时组件使用的是XNA类库,而类库可以进行扩展用来创建自定义的Content Pipeline运行时组件。
素材加载器Content Loader | 当游戏使用素材的托管代码对象时,必须调用ContentManager.Load方法进行加载,并指定要加载的对象类型。素材加载器找到二进制格式(.XNB)文件并加载至内存中。 |
Content Pipeline Document Object Model
原文地址:http://msdn.microsoft.com/zh-cn/library/ff827627。
XNA Game Studio Content Document Object Model (DOM)代表一组内建的类,这些类可以被标准的处理器使用。
DOM提供了对meshes,materials,textures,sprite-fonts和animations的支持。此外,一个自定义的导入器可以返回一个ContentItem ,在这个对象中的opaque数据中可以包含自定义信息,或你开发的自定义类型。
下图是完整的Content DOM。
文件下载(已下载 1876 次)发布时间:2012/2/1 下午2:06:58 阅读次数:6837