СПАСИБО ПАКС!!
UPD: Хотя я тут вероятно ошибся... а может и будет работать, я вроде маску покрасил и с ней скомбинировал... попробуй
|
Да фигня, главное суть ясна )
Сделал две версии шейдера
MaskedTexture
Shader "MaskedTexture"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_Mask ("Culling Mask", 2D) = "black" {}
_Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
}
SubShader
{
Tags {"Queue"="Transparent"}
Lighting Off
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
AlphaTest GEqual [_Cutoff]
Pass
{
SetTexture [_Mask]
{
constantColor [_ColorMask]
}
SetTexture [_MainTex]
{
constantColor [_Color]
combine texture * constant, previous
}
}
}
}
MaskedTexture Fast
Shader "MaskedTexture Fast"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_Mask ("Culling Mask", 2D) = "black" {}
_Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
}
SubShader
{
Tags {"Queue"="Transparent"}
Lighting Off
ZWrite On
AlphaTest GEqual [_Cutoff]
Pass
{
SetTexture [_Mask]
{
constantColor [_ColorMask]
}
SetTexture [_MainTex]
{
constantColor [_Color]
combine texture * constant, previous
}
}
}
}
Расскажу в чем разница, в втором варианте я оставил включенном Z-буффер и отключил альфа смешивание Blend SrcAlpha OneMinusSrcAlpha. На сколько я понимаю, таким образом должно работать быстрее, если нет, сообщите.
Слева на рисунке фаст, разница не большая, а при использовании на большом расстоянии вообще остуствует.