什么是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。

ContentCOM 文件下载(已下载 1876 次)

发布时间:2012/2/1 下午2:06:58  阅读次数:6837

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号