小祥的BLOG

游戏开发
posts - 7, comments - 14, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Alpha混合

Posted on 2007-11-15 19:40 小祥 阅读(1542) 评论(2)  编辑 收藏 引用 所属分类: D3D
Direct3D计算Alpha混合的颜色公式:
Color = ( SrcRGB * SrcK ) + ( DestRGB * DestK )
 
SrcRGB表示源颜色值,即将要绘制的颜色值。SrcK表示源混合系数,通常赋值为D3DBLEND_SRCALPHA,即当前绘制像素的Alpha值
DestRGB表示目标颜色值,即当前缓冲区中的颜色值。DestK表示目标系数,通常赋值为D3DBLEND_INVSRCALPHA,即1减去当前绘制像素的Alpha值
 
则Direct3D计算Alpha混合的颜色公式可表示为
Color = ( SrcRGB * SrcAlpha ) + ( DestRGB * ( 1 - SrcAlpha ) )
 
混合步骤
 
Alpha混合默认关闭,所以首先需要开启它
Device -> SetRenderState( D3DRS_ALPHABLENDENABLE, true );
 
然后设置Alpha混合系数
Device -> SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
Device -> SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
 
还要指定资源(材质或Alpha通道)
Alpha通道可用DirectX自带的纹理工具创建,为DDS文件
 
DEMO演示图片:
alphablend.jpg

Feedback

# re: Alpha混合  回复  更多评论   

2008-08-26 11:01 by
靠 这种东西 你自己留着看吧!

# re: Alpha混合  回复  更多评论   

2009-12-23 19:25 by Ronaldo
不错~~不错~~
只有注册用户登录后才能发表评论。