上一节中用元素表示所有XNA能够加载并处理的内容,并谈论了所有这些元素所需要的两个最基本的Matrix。今天讨论一下所有这些元素的知识。
在XNA中,统一使用内容管道(content pipeline)框架提供支持。一个完整的内容管道是由导入器 (importer),处理器(processor),串行化器(serializer)和反串行化器(deserializer(组成的。
导入器:读取源文件并提取有用的数据,这个数据是存储在一个指定的标准格式中的。例如对一个模型,标准格式是NodeContent对象,对一个图像,标准格式是TextureContent 对象。这种标准格式叫做DOM对象。
处理器:处理包含在DOM对象中的数据并生成在游戏中可用的对象。例如对模型来说,处理器可以添加法线数据,计算切线,设置effect等。
串行化器或TypeWriter:定义了如何从处理器的输出生成.xnb二进制文件。
反串行化器或TypeReader(运行时):定义了如何从存储在.xnb文件的二进制数据流中构建游戏对象。因为这里不需要处理计算,相对于编译过程来说这个过程几乎不花费时间。
自定义内容处理器。XNA支持自定义处理器,这样可以对导入器得到的DOM对象进行特殊的处理,比如修改其中的颜色。
方法是:在VS中新建一个Content Pipeline库项目(最后生成库文件),完成Process类的process方法。下面是一个自定义的纹理处理器。
public override TextureContent Process(TextureContent input, ContentProcessorContext context)
{
TextureContent texContent = base.Process(input, context);
texContent.ConvertBitmapType(typeof(PixelBitmapContent<Color>));
for (int face = 0; face < texContent.Faces.Count; face++)
{
MipmapChain mipChain = texContent.Faces[face];
for (int mipLevel = 0; mipLevel < mipChain.Count; mipLevel++)
{
PixelBitmapContent<Color> image = (PixelBitmapContent<Color>) input.Faces[face][mipLevel];
image.ReplaceColor(Color.Black, Color.White);
}
}
return texContent;
}
好了,下节将讨论2D的纹理的处理。
- 大小: 17.9 KB
- 大小: 9.6 KB
- 大小: 9.2 KB
分享到:
相关推荐
XNA4.0学习指南--源代码
XNA Tutorial Collision Series 1 - 2D Rectangle Collision
XNA学习资料-XNA入门指南2.0,比较适合新手哈
XNA学习资料,XNAXNA学习资料,XNAXNA学习资料,XNAXNA学习资料,XNA
cocos2d-xna, Cocos2d X的XNA端口 Cocos2D-XNACocos2D-XNA是基于广泛流行和成功的Cocos2D-X引擎的2D 游戏开发引擎。 使用 Cocos2D-XNA,游戏开发者可以创建具有丰富用户体验的神奇游戏,而不会带来私有游戏库巨大的...
一本没有翻译的英文书籍,关于XNA游戏框架开发
cocos2d-x for xna 2D游戏引擎源码 xna cocos2d-x是一个用C#编写的2D游戏引擎,基于[cocos2d-x][1]和使用MIT 协议。 引擎由 [cocos2d-x][1] 和 [OpenXLive][2] 联合开发。 cocos2d-x for xna is a 2D game ...
XNA学习指南_中文_附源代码[XNA学习必备] 菜鸟 高手 均可参考
cocos2d-x-for-XNA VS2010和VS2012通用模板 添加后打开VS在模板的XNA Game Studio 4.0项下就可以看到相应模板,新建模板后记得引用cocos2d-x-for-XNA的DLL. 使用方法: 将压缩包内的文件夹解压到以下文件夹: VS2010: ...
英文版下载地址:http://disanji.net/2011/02/13/ebook-learning-xna-4-0-game-development-for-the-pc-xbox-360-and-windows-phone-7/ 本书中彩色插图下载:http://u.115.com/file/f1a55ef495 本书源代码下载:...
用于在XNA中绘制2D基本形状的库。 该库具有用于绘制像素,直线,矩形,填充矩形,圆形和圆弧的方法。 开发移至:https://bitbucket.org/C3/2d-xna-primitives
cocos2d-x-for-xna-master.zip
cocos2d-x游戏引擎,针对xna版本
基于XNA开发的3D游戏源码,适合初学者!
cocos2d-xna VS2010和VS2012通用模板 添加后打开VS在模板的XNA Game Studio 4.0项下就可以看到相应模板,新建模板后记得引用cocos2d-xna的DLL. 使用方法: 将压缩包内的文件夹解压到以下文件夹: VS2010: X:\Documents...
XNA4.0GameDevelopmentByExample-英文原版.zip
XNA 游戏编程学习总结2D与3D实现-2D源碼
XNA4.0学习指南
学习资源\3D-xna游戏设计\XNA-3D文章.CHM
cocos2d for xna源码