关于透明度混合blend

webgl中关于blend

开启blend是gl.enable(gl.BLEND)
关闭blend是gl.disable(gl.BLEND);

设置blendFunc是gl.blendFunc
gl.blendFunc()是WebGL(Web Graphics Library)中的一个方法,用于指定在渲染过程中如何混合源像素颜色和目标像素颜色。

gl.blendFunc()方法接受两个参数:sfactor和dfactor,它们分别指定源因子和目标因子,决定了如何混合源像素颜色和目标像素颜色。

sfactor和dfactor参数可以设置为以下预定义常量之一:

gl.ZERO: 0
gl.ONE: 1
gl.SRC_COLOR: 源像素颜色
gl.ONE_MINUS_SRC_COLOR: 1 - 源像素颜色
gl.DST_COLOR: 目标像素颜色
gl.ONE_MINUS_DST_COLOR: 1 - 目标像素颜色
gl.SRC_ALPHA: 源像素的 alpha 值
gl.ONE_MINUS_SRC_ALPHA: 1 - 源像素的 alpha 值
gl.DST_ALPHA: 目标像素的 alpha 值
gl.ONE_MINUS_DST_ALPHA: 1 - 目标像素的 alpha 值
gl.CONSTANT_COLOR: 使用 gl.blendColor() 指定的常量颜色值
gl.ONE_MINUS_CONSTANT_COLOR: 1 - 常量颜色值
gl.CONSTANT_ALPHA: 使用 gl.blendColor() 指定的常量 alpha 值
gl.ONE_MINUS_CONSTANT_ALPHA: 1 - 常量 alpha 值
默认的混合函数是 gl.FUNC_ADD,它将源像素颜色和目标像素颜色相加。gl.FUNC_ADD 的混合方程式为:

result = (sfactor * source) + (dfactor * destination)

unity中关于blend

是在ShaderLab中有Blend
https://docs.unity3d.com/cn/current/Manual/SL-Blend.html

还有一个BlendOp,主要是上面计算的时候是加还是别的操作,默认是加,参考
https://docs.unity3d.com/cn/current/Manual/SL-BlendOp.html

你可能感兴趣的:(unity,游戏引擎)