首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义BlendState以避免AlphaBlending工件

自定义BlendState以避免AlphaBlending工件
EN

Stack Overflow用户
提问于 2012-03-30 09:20:37
回答 1查看 333关注 0票数 0

我本质上是在每一帧上绘制一个纹理,每次我绘制它的时候,我都想减少alpha,这样它最终会达到0,这样就不会留下任何伪像。

基本方程式是:

代码语言:javascript
复制
result = (source * sourceBlendFactor) blendFunction (destination * destinationBlendFactor)

因为我的目的地是Color.Transparent,所以我想我需要:

代码语言:javascript
复制
result = 0 = (source * sourceBlendFactor); 

我绞尽脑汁研究了不同的BlendState组件,但我似乎无法理解这一点……

有没有办法让alpha线性递减?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-30 10:37:18

你当然可以。定义一个保持当前alpha状态在1和0之间的值。每一帧递减该值,直到该值达到0。在draw方法中,可以确定色调颜色的Alpha值。

代码语言:javascript
复制
byte alpha = 255 - (currentAlphaState * 255);
spriteBatch.Draw(...., new Color( 255, 255, 255, alpha) ...); // assuming white is your default tint color
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9935811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档