标签:des com http style blog img c log t size sp
像素的混合,将几种像素合成新的像素。
如书中木箱和透明茶壶的图。
方法就是通过一定的公式,将前后两个像素值混合为一个新的像素值。该公式如下
上面的所有变量都是一个4D 颜色向量(r,g,b,a),并且符号是表示分量相乘。
混合默认是被关闭的;你能够通过设置D3DRS_ALPHABLENDENABLE渲染状态为true来开启它:
通过设置设置D3DRS_SRCBLEND和D3DRS_DESTBLEND渲染状态来分别设置源混合要素和目的混合要素。
这里Source和Destination能够使用下面混合要素中的一个:
源和目的混合要素的默认值分别是D3DBLEND_SRCALPHA和D3DBLEND_INVSRCALPHA。
在以前的章节中我们忽略了颜色顶点和材质中的alpha 部分,那是因为当时它并不是必须的。现在它首先被用在混合中。Alpha 部分主要是用来指定像素的透明等级。我们为每个像素的alpha 部分保留8 位,alpha 的有效值在[0,255]范围内,[0,255]代表不透明度[0%,100%]。因此,像素的alpha 为0 时,表示完全透明,像素的alpha 为128 时,表示50%透明,像素的alpha 为255 时,表示完全不透明。为了让alpha部分描述像素的透明等级,我们必须设置源混合要素为D3DBLEND_SRCALPHA以及目的混合要素为D3DBLEND_INVSRCALPHA。这些值碰巧也是被默认设置的。
默认情况下,假如设置一个有alpha 通道的纹理,alpha 值从在alpha 通道中获得。假如没有alpha通道,那么alpha 值是通过顶点颜色获得。然而,你能够通过下面的渲染状态来指定使用哪一个资源:
[Direct3D 9.0]第七章 混合,布布扣,bubuko.com
标签:des com http style blog img c log t size sp
原文地址:http://www.cnblogs.com/wangke1020/p/3701712.html