[unity] SkeletonTint does black point tinting through a material property.

This commit is contained in:
pharan 2016-11-28 17:53:19 +08:00
parent ee1028bb13
commit ec36a1d6ec

View File

@ -1,6 +1,13 @@
// Spine/Skeleton Tint
// - Two color tint
// - unlit
// - Premultiplied alpha blending
// - No depth, no backface culling, no fog.
Shader "Spine/Skeleton Tint" { Shader "Spine/Skeleton Tint" {
Properties { Properties {
_Color ("Tint Color", Color) = (1,1,1,1) _Color ("Tint Color", Color) = (1,1,1,1)
_Black ("Black Point", Color) = (0,0,0,0)
_MainTex ("MainTex", 2D) = "black" {} _MainTex ("MainTex", 2D) = "black" {}
_Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1
} }
@ -23,6 +30,7 @@ Shader "Spine/Skeleton Tint" {
#include "UnityCG.cginc" #include "UnityCG.cginc"
uniform sampler2D _MainTex; uniform float4 _MainTex_ST; uniform sampler2D _MainTex; uniform float4 _MainTex_ST;
uniform float4 _Color; uniform float4 _Color;
uniform float4 _Black;
struct VertexInput { struct VertexInput {
float4 vertex : POSITION; float4 vertex : POSITION;
@ -45,7 +53,8 @@ Shader "Spine/Skeleton Tint" {
} }
float4 frag (VertexOutput i) : COLOR { float4 frag (VertexOutput i) : COLOR {
return (tex2D(_MainTex, i.uv) * i.vertexColor); float4 texColor = tex2D(_MainTex, i.uv);
return (texColor * i.vertexColor) + float4(((1-texColor.rgb) * texColor.a * _Black.rgb), 0);
} }
ENDCG ENDCG
} }