最开始接触Unity的时候,觉得写Shader的真是NB的不要不要的,到现在对Shader也只是了解皮毛。学习的路还很长啊。
上篇文章写了如何将Atlas图集进行RGB+Alpha进行分离,本篇文章将会对分离材质使用的Shader进行讲解。
基本思路是:
1.对分离出来的两张贴图进行分别采样,最后进行颜色的叠加
2.因为NGUI的渲染机制,如果在两个或者三个Panel同时存在下,需要准备多份儿Shader 命名规则为 UI_ETC UI_ETC 1 UI_ETC 2...
Shader代码如下:
Shader "UI/UI_ETC"
{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_MainTex_A("Alpha ( Alpha )", 2D) = "white" {}
}
SubShader
{
LOD 200
Tags
{
"Queue" = "Transparent"
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
}
Pass
{
Cull Off
Lighting Off
ZWrite Off
Fog { Mode Off }
Offset -1, -1
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
sampler2D _MainTex_A;
float4 _MainTex_ST;
struct appdata_t