-
混合状态-python实现pdf转换成word/txt纯文本文件下载
资源介绍
9.3 混合系数
通过为源混合系数和目标混合系数指定不同的组合值,可以实现不同的混合效果。我
们将在 9.5 节讲解这里的一部分组合值,对于那些我们没有讲到的组合值,请读者自己做
一些实验,看看它们可以产生哪些效果。下面的列表描述了基本的混合系数,它们都可以
用于 Fsrc 和 Fdst。对于一些额外的高级混合系数,请参阅 SDK 文档中的 D3D11_BLEND 枚举
类型。设 Csrc = (r,g,b)、Asrc = as(从像素着色器中输出的 RGBA 颜色)、Cdst = (rd,gd,bd )、Ad =
ad(已经储存在渲染目标中的 RGBA 颜色),F 既可以作为 Fsrc 也可以作为 Fdst,F 既可以作
为 Fsrc 也可以作为 Fdst,我们有:
D3D11_BLEND_ZERO:F = (0, 0,0)且 F = 0
D3D11_BLEND_ONE:F = (1, 1,1) 且 F = 1
D3D11_BLEND_SRC_COLOR:F = (rs ,gs ,bs )
D3D11_BLEND_INV_SRC_COLOR:F = (1 - rs ,1 - gs ,1 - bs )
D3D11_BLEND_SRC_ALPHA:F = (as ,as ,as )且 F = as
D3D11_BLEND_INV_SRC_ALPHA:F = (1 − as,1 − as,1 − as)且 F =1 − as
D3D11_BLEND_DEST_ALPHA:F = (ad ,ad ,ad )且 F = ad
D3D11_BLEND_INV_DEST_ALPHA:F = (1 – ad,1 − ad,1 – ad)且 F =1 – ad
D3D11_BLEND_DEST_COLOR:F = (rd ,gd ,bd )
D3D11_BLEND_INV_DEST_COLOR:F = (1 – rd ,1 – gd ,1 – bd )
D3D11_BLEND_SRC_ALPHA_SAT:F = (asʹ, asʹ, asʹ)且 F = asʹ,其中,asʹ = clamp(as , 0, 1)
D3D11_BLEND_BLEND_FACTOR : F = (r,g,b) 且 F = a , 其 中 , 颜 色 (r,g,b,a) 由
ID3D11DeviceContext::OMSetBlendState 方法的第 2 个参数指定(9.4 节)。也就是说,
我们可以将一个颜色指定为混合系数;在修改混合状态前,该颜色一直有效。
D3D11_BLEND_INV_BLEND_FACTOR:F = (1-r,1-g,1-b)且 F = 1-a,其中,颜色(r,g,b,a)由
ID3D11DeviceContext::OMSetBlendState 方法的第 2 个参数指定(9.4 节)。也就是说,
我们可以将一个颜色指定为混合系数;在修改混合状态前,该颜色一直有效。
注意:clamp 函数的定义为:
,
( , , ) ,
,
x a x b
clamp x a b a x a
b x b
≤ ≤
= <
>
所有的这些混合系数都可用于 RGB 混合方程。但是,以“_COLOR”结尾的混合系数不
可用于 alpha 混合方程。
9.4 混合状态
我们已经讨论了混合运算符和混合系数,但是还没有说该如何在 Direct3D 中使用些
值。这些混合参数要通过 ID3D11BlendState 接口来控制。我们可以通过填充一个
259 / 351