`
andyjackson
  • 浏览: 58338 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

XNA学习笔记2-统一内容管道

阅读更多
   上一节中用元素表示所有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学习指南--源代码

    1. **Content Pipeline**:内容管道是XNA中的一个重要概念,它允许开发者处理和导入各种媒体资源(如图像、音频和3D模型)到游戏中。内容管道工具集将这些资源转化为XNA框架可以理解的格式,使得游戏运行时能够高效...

    XNA Collision Series 1 - 2D Rectangle Collision

    XNA Tutorial Collision Series 1 - 2D Rectangle Collision

    XNA学习资料-XNA入门指南2.0

    2. **内容管道(Content Pipeline)**:XNA提供了一种强大的工具,即内容管道,用于导入和预处理各种媒体资源(如图像、音频、3D模型),使其能在游戏中顺利使用。 3. **图形设备(Graphics Device)**:XNA提供了一个...

    XNA学习资料,XNA

    2. **安装和配置XNA开发环境**:指导如何安装Visual Studio Express(通常是Visual Studio 2008或2010版本,因为XNA不再支持最新的Visual Studio版本),以及XNA Game Studio,设置好开发环境。 3. **Hello, XNA**...

    XNA入门指南-第一章

    - **统一的开发环境**:XNA提供了统一的开发环境,包括Visual Studio Express和XNA Game Studio Express,这使得开发者能够在一个熟悉的环境中进行游戏开发。 - **跨平台能力**:XNA允许开发者编写的代码在多个平台...

    XNA学习指南_中文_附源代码[XNA学习必备]

    内容管道是XNA的一大特色,它允许开发者使用各种格式的资源,并在编译时自动转换为XNA可以理解的格式。这包括图片、3D模型、音频文件等,极大地简化了资源管理。 **6. 游戏输入** XNA提供GamePad、Keyboard和Mouse...

    cocos2d-xna, Cocos2d X的XNA端口.zip

    cocos2d-xna, Cocos2d X的XNA端口 Cocos2D-XNACocos2D-XNA是基于广泛流行和成功的Cocos2D-X引擎的2D 游戏开发引擎。 使用 Cocos2D-XNA,游戏开发者可以创建具有丰富用户体验的神奇游戏,而不会带来私有游戏库巨大的...

    cocos2d - x for xna.dll文件

    Cocos2d-x是一款强大的开源游戏开发框架,它基于C++,并提供了多种语言接口,如C#、Lua和JavaScript,让开发者能够跨平台创建2D游戏和其他互动应用。在这个场景中,我们关注的是Cocos2d-x针对XNA版本的特定实现,即...

    cocos2d-for-xna

    6. **内容管道**:内容管道工具允许开发者预处理资源,优化加载时间和内存占用。 【cocos2d-cocos2d-x-for-xna-45bff48】这个文件很可能是cocos2d-for-xna项目的一个特定版本,版本号45bff48可能对应着Git仓库中的...

    cocos2d-x for xna 2D游戏引擎源码

    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 ...

    cocos2d-x for XNA VS2010和VS2012通用模板

    cocos2d-x-for-XNA VS2010和VS2012通用模板 添加后打开VS在模板的XNA Game Studio 4.0项下就可以看到相应模板,新建模板后记得引用cocos2d-x-for-XNA的DLL. 使用方法: 将压缩包内的文件夹解压到以下文件夹: VS2010: ...

    cocos2d-x-for-xna.zip

    在"压缩包子文件的文件名称列表"中提到的“cocos2d-x-for-xna-master”可能代表的是该项目的源代码仓库主分支,包含项目的核心代码、示例、文档和其他资源。开发者可以通过解压并研究这些文件来了解如何将Cocos2d-x...

    XNA游戏开发->国际象棋源码

    XNA利用C#编程语言,结合DirectX图形库,使得游戏开发更加容易上手,尤其对于初学者来说是个很好的学习平台。 【国际象棋】是一种双人对弈的策略棋类游戏,起源于6世纪的印度,后来在欧洲发展并逐渐演变成现代的...

    XNA 游戏编程学习总结2D与3D实现

    - Content Pipeline:XNA的内容管道负责资源(如图像、音频、模型)的加载和预处理,使其能在游戏中有效使用。 - SpriteBatch和SpriteFont:这两个类是2D绘图的核心,用于绘制精灵和文本。 2. **2D游戏编程** - ...

    2D XNA Primitive Shapes Library-开源

    开发团队已经将项目的维护移至Bitbucket平台(https://bitbucket.org/C3/2d-xna-primitives),这意味着社区可以更方便地参与贡献,修复问题,或者添加新功能,进一步增强了这个库的生命力和适应性。 在实际应用中...

    cocos2d-x for xna资料

    《cocos2d-x for XNA:从入门到精通》 ...通过以上内容,开发者可以逐步掌握cocos2d-x for XNA的整合技术,实现高效且跨平台的游戏开发。同时,不断学习和实践,提升个人在游戏开发领域的专业技能。

    XNA2版俄罗斯方块源码

    XNA由四个主要部分组成:Content Pipeline(内容管道)、Game Components(游戏组件)、Game Loop(游戏循环)和Graphics Pipeline(图形管道)。在XNA 2.0版的俄罗斯方块源码中,这些概念会贯穿始终。 1. **...

    Windows Phone开发-XNA基础

    1. **易用性**:XNA采用C#语言和.NET框架进行开发,这让很多开发者能够快速上手,无需深入学习复杂的C/C++特性。 2. **跨平台性**:XNA具有良好的跨平台支持能力,开发者可以在不同平台上轻松移植游戏,无需大量修改...

Global site tag (gtag.js) - Google Analytics