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

  • 相关阅读:
    [HNOI2004]L语言
    快速沃尔什变换FWT
    [BZOJ1486][HNOI2009]最小圈
    [BZOJ4819][SDOI2017]新生舞会
    [POJ2976]Dropping tests
    CTSC2018&APIO2018游记
    [Luogu3769][CH弱省胡策R2]TATT
    [BZOJ3489]A simple rmq problem
    [BZOJ4066]简单题
    [BZOJ2648]SJY摆棋子
  • 原文地址:https://www.cnblogs.com/fourleg/p/2101800.html
Copyright © 2011-2022 走看看