【Unity5.x Shdaers】ShaderLab: Blending 混合
2016-12-07 15:57
453 查看
ShaderLab: Blending
混合用于制作透明物体。当渲染图形时,在所有shaders执行并且所有textures应用之后,像素被写入屏幕。 它们如何与已经存在的内容组合由Blend命令控制。
语法
Blend Off:关闭混合 (这是默认值)
Blend SrcFactor DstFactor:配置并启用混合。 生成的颜色乘以SrcFactor。 已经在屏幕上的颜色乘以DstFactor,并将两者相加。
Blend SrcFactor DstFactor, SrcFactorA DstFactorA: 同上,但使用不同的因子来混合alpha通道。
BlendOp Op: 对它们执行不同的操作来替代将混合颜色添加在一起。
BlendOp OpColor, OpAlpha: 同上,但对颜色(RGB)和alpha(A)通道使用不同的混合操作。
此外,你可以设置upper-rendertarget混合模式。 当使用多渲染目标(MRT)渲染时,上面的常规语法为所有渲染目标设置相同的混合模式。 以下语法可以为各个渲染目标设置不同的混合模式,其中N是渲染目标索引(0..7)。 此功能适用于大多数现代API / GPU(DX11 / 12,GLCore,Metal,PS4):
Blend N SrcFactor DstFactor
Blend N SrcFactor DstFactor, SrcFactorA DstFactorA
BlendOp N Op
BlendOp N OpColor, OpAlpha
AlphaToMask On:打开Alpha-to-coverage。 使用MSAA时,alpha-to-coverage会根据像素shader结果alpha值按比例修改多重采样覆盖蒙版。 这通常用于比正常alpha test更少的混叠轮廓; 用于植被和其他alpha-tested Shaders。
Blend operations 混合操作
Add 将源和目标添加在一起。Sub 从源中减去目标。
RevSub 从目标中减去源。
Min 使用较小的源和目标。
Max 使用较大的源和目标。
其他的操作及本篇博客来自官方文档:https://docs.unity3d.com/Manual/SL-Blend.html
Blend factors 混合因子
以下所有属性在Blend命令中都适用于SrcFactor&DstFactor。 源指的是计算的颜色,目标是已经在屏幕上的颜色。 如果BlendOp使用逻辑运算,则忽略混合因子。One 1 - 使用它让源或目标颜色完全通过
Zero The 0 - 使用此值删除源或目标值
SrcColor 源的Color(RGB)值
SrcAlpha 源的Alpha(a)值
DstColor 目标的Color(RGB)值
DstAlpha 目标的Alpha(a)值
OneMinusSrcColo 1 - source color.
OneMinusSrcAlpha 1 - source alpha.
OneMinusDstColor 1 - destination color.
OneMinusDstAlpha 1 - destination alpha.
以下是最常见的混合类型:
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency 传统透明度,最常用的 Blend One OneMinusSrcAlpha // Premultiplied transparency 预乘透明度 Blend One One // Additive 叠加的 Blend OneMinusDstColor One // Soft Additive 软叠加 Blend DstColor Zero // Multiplicative Blend DstColor SrcColor // 2x Multiplicative
相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- Unity UGUI教程之实现滑页效果
- unity实现摄像头跟随
- Unity iOS混合开发界面切换思路解析
- Unity的lua项目为Tolua# 编译protobuf
- 彻底理解数字图像处理中的卷积-以Sobel算子为例
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- Unity3D-5.3.5发布VR项目到Android
- unity 新UI草稿
- [软件资讯]Unity已支持将3D游戏导出成Flash
- ShaderLab: Pass
- Unity 武器拖尾效果
- unity常见问题之20题
- Unity3D与JavaWeb服务器传递数据和文件 ---建立Java服务器
- 反编译ARB program to GLSL shader日记