zoukankan      html  css  js  c++  java
  • XNA 没有经过Content Pipeline对内容做Alpha预处理解决办法

    前几天发现32位png文件在XNA中显示没能正常显示,添加到Content经过编译后能正常显示,png文件体积变大了。

    由于我是打包成资源文件的,而不是用XNB的,所以就想用代码把png编译成XNB文件,在通过ContentManager把

    XNB文件转换成png文件,使其成为有alpha预处的文件。

    解决办法:

    1.XnaDeVRu.ContentBulider,这东西在网上找的,开源的,但编译用的代码过时了,代码长不怎么好理解,还是能用。

    2.WinformsContentLoading里也有个ContentBuilder类,是新版的,代码短,而好理解

    3.在SpriteBatch.Draw 添加参数BlendState.NonPremultiplied,是目前最简单的办法。

    PS:第一,第二种办法都是对png先进行处理,由于不知道BlendState.NonPremultiplied对性能的影响如何,所以保留

    第二种办法,以便以后提高性能

    写编辑器也写了很久了,回看以前起步的那个程序 《山寨DNF》,变化真大

    现在的编辑器

    QQ截图20110709151442

    QQ截图20110709151536

    没alpha预处理的效果:

    QQ截图20110709151730

    有alpha预处理的效果:

    QQ截图20110709151604

  • 相关阅读:
    设计模式总结
    设计模式之工厂
    C#
    UML画图总结
    UML视频总结
    类图
    读取文件信息
    HMAC算法加密
    SHA_1计算消息摘要
    获取指定长度的随机字符串
  • 原文地址:https://www.cnblogs.com/fourleg/p/2101800.html
Copyright © 2011-2022 走看看