【发布时间】:2012-04-13 17:10:44
【问题描述】:
我本质上是在每一帧都在自己身上绘制一个纹理,每次我绘制它时我都想减少 alpha 以便它最终达到 0,这样就不会留下任何伪影。
基本方程是:
result = (source * sourceBlendFactor) blendFunction (destination * destinationBlendFactor)
由于我的目的地是 Color.Transparent,我认为我需要:
result = 0 = (source * sourceBlendFactor);
我绞尽脑汁研究不同的 BlendState 组件,但我似乎无法实现这一点......
有没有办法让 alpha 线性递减?
【问题讨论】:
-
请不要在标题前加上“C# XNA”之类的前缀。这就是标签的用途。
-
当您在我们选择的编辑器中查看资产时,工件是否存在?如果是这样,请在此处修复它们,如果不修复您设置的渲染选项以防止工件发生。你所做的就是用你的想法强迫任何部分透明的像素变得完全透明。换句话说,我非常确定你试图解决你的问题的症状没有来源。
-
另外你如何导入你的资产这听起来像你的资产没有预乘并且你在你的 Spritebatch 中使用一个 Blendstate 假设 Texture2D 是预乘的。
标签: c# colors xna draw alphablending