融合技术

融合blending技术


     该技术能使我们将当前要进行光栅化的像素的颜色与先前已光栅化并处于同一位置的像素的颜色进行合成.主要是透明效果

 

注意的是:
    首先绘制那些不需要进行融合的物体,然后将需要进行融合的物体按照相对于摄像机的深度值进行排序,按照自后往前的顺序逐个绘制将要进行融合的物体


一.融合方程:
融合后的颜色=源像素颜色*源整合因子+后台缓存像素颜色*目标融合因子.

 

Direct3D中,默认状态下是禁止整合运算的,
device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);

 

二.融合因子:
通过设定源融合因子和目标融合因子,我们可创建一系列不同的融合效果.
device->SetRenderState(D3DRS_SRCBLEND, source);//源资源
device->SetRenderState(D3DRS_DESTBLEND, source);//目标资源

 

三.透明度
每个顶点颜色中的Alpha分量与颜色值类似,都是沿着三角形单元表面渐变,但它并非用于确定某像素的颜色值,而用于确定像素的Alpha分量
顶点Alpha值为0是透明,为128半透明,255不透明


1.Alpha通道;
我们并不直接使用计算得到 的Alpha分量,而往往是从纹理的Alpha通道中获取Alpha信息Alpha通道是保留给存储了Alpha分量的纹理元的一个额外的位集合


2.指定Alpha来源
默认状态下,如果当前设置的纹理拥有一个Alpha通道,Alpha值就取自该Alpha通道.如果没有Alpha通道,Alpha值就取自顶点的颜色.
device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTA_SELECTARG1);

 

device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTA_SELECTARG1);

代码:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值