Unity 之 Shader Blend 混合操作 - 八
2015-04-09 16:27
429 查看
Blend 混合操作
使用方法如:
Blend One Zero
Blend SrcAlpha One 等
在代码中运用如下
各种组合不一一测试,各种混合模式视情况而定
在Unity3.5版本之后又多了一个BlendOp选项,可以在通常的加操作之外执行Max,Min, Sub, 以及 RevSub这4种操作
用法如下
BlendOp Max
BlendOp Min
BlendOp Sub
BlendOp RevSub
加到Pass中即可
效果如下
混合操作作用于在所有计算已经结束, 已经决定将当前计算结果输出到帧缓冲中是,如何输出到帧缓冲中,是直接替换原来的,还是一加一的混合。 混合操作有两个对象,源和目标 Blend混合总共有十种可选类型 One 值为1,使用此因子来让帧缓冲区源颜色或是目标颜色完全的通过。 zero 值为0,使用此因子来删除帧缓冲区源颜色或目标颜色的值。 SrcColor 使用此因子为将当前值乘以帧缓冲区源颜色的值 SrcAlpha 使用此因子为将当前值乘以帧缓冲区源颜色Alpha的值。 DstColor 使用此因子为将当前值乘以帧缓冲区目标颜色的值。 DstAlpha 使用此因子为将当前值乘以帧缓冲区目标颜色Alpha分量的值。 OneMinusSrcColor 使用此因子为将当前值乘以(1 -帧缓冲区源颜色值) OneMinusSrcAlpha 使用此因子为将当前值乘以(1 -帧缓冲区源颜色Alpha分量的值) OneMinusDstColor 使用此因子为将当前值乘以(1 –目标颜色值) OneMinusDstAlpha 使用此因子为将当前值乘以(1 –目标Alpha分量的值)
使用方法如:
Blend One Zero
Blend SrcAlpha One 等
在代码中运用如下
Shader "Custom/PassFive" { Properties { //定义一个贴图 _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags {"RenderType" = "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"} LOD 200 Pass { //AlphaTest Greater 0.6 //AlphaTest Less 0.5 //AlphaTest Greater 0.4 //AlphaTest Less 0.9 //Blend SrcAlpha OneMinusSrcAlpha Blend SrcColor OneMinusSrcColor //BlendOp Max //BlendOp Min //BlendOp Sub //BlendOp RevSub // 通过绑定固定通道来使用定点色 BindChannels { Bind "Vertex", vertex // 绑定定点 Bind "Normal", normal Bind "Color", color Bind "Texcoord", texcoord0 Bind "Texcoord", texcoord1 } //给材质设置 贴图 SetTexture [_MainTex] { Combine texture * primary double } } } FallBack "Diffuse" }
各种组合不一一测试,各种混合模式视情况而定
在Unity3.5版本之后又多了一个BlendOp选项,可以在通常的加操作之外执行Max,Min, Sub, 以及 RevSub这4种操作
用法如下
BlendOp Max
BlendOp Min
BlendOp Sub
BlendOp RevSub
加到Pass中即可
效果如下
相关文章推荐
- 【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- 【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- unity shaderlab Blend操作
- Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- unity shaderlab Blend操作
- Unity Shader (五)混合(Blend)
- 【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- 【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- unity shader学习笔记(十一)——Unity中的透明效果之ShaderLab中的混合命令
- Unity入门操作_混合树_033
- Unity3D ShaderLab 混合两张贴图(Blend)
- Unity Shaders——屏幕特效混合模式(Blend mode with screen effects)
- 从一个shader剖析unity混合光照和pbr
- unity混合两种贴图shader
- unity shader 固定管线实例(三) 光照 自发光混合 纹理混合
- Unity Shader 学习笔记(十一) 混合纹理Shader实例
- Unity中的CG编写Shader系列(Blend)
- 【Unity Shader】4.Unity Shader基本知识学习(混合 Blending )
- Unity Shader Example 5 (地形混合)
- 解读Unity中的CG编写Shader系列七(不透明度与混合)