반응형
회사 작업을 하다 필요해서 찾게 된 쉐이더 코드 입니다.
구글 에서 서칭해서 찾았고, 수정을 좀 했습니다.
두개의 쉐이더 로 되어 있습니다.
- SpineShader - 스파인 데이타에 적용하는 코드.
- SpineSpriteMask - 마스킹 영역 코드.
코드와 파일은 하단에 있습니다.
SpineShader - 스파인 데이타에 적용하는 코드.
SpineSpriteMask - 마스킹 영역 코드.
유니티에서 마스킹이 된 스파인 데이타.
텍스쳐의 이미지에 따라 마스킹을 영역을 정할수 있습니다.
● SpineShader - 스파인 데이타의 메테리얼
Shader "Custom/SpineShader"{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags {"Queue"="Transparent+2" "IgnoreProjector"="True" "RenderType"="Transparent"}
ZWrite Off
Cull Off // 두 면 모두 렌더링
Blend SrcAlpha OneMinusSrcAlpha
Stencil {
Ref 1
Comp Equal
}
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f
{
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag (v2f i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.texcoord);
return col;
}
ENDCG
}
}
}
● SpineSpriteMask - 마스킹 하는 텍스쳐 메테리얼
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Custom/SpineSpriteMask"{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags {"Queue"="Transparent+1" "IgnoreProjector"="True"}
ZWrite Off
AlphaTest Greater 0.5
ColorMask 0
ZTest Always
Stencil {
Ref 1
Comp always
Pass replace
}
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f
{
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag (v2f i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.texcoord);
if(col.a<0.1)discard;
return col;
}
ENDCG
}
}
}
SpineShader.shader
0.00MB
SpineSpriteMask.shader
0.00MB
반응형
'º 개발 이야기 > 개발' 카테고리의 다른 글
3D 카툰 쉐이더 테스트 (0) | 2025.03.12 |
---|---|
이터널 레이싱 (0) | 2018.05.29 |
"Simple Game's" 프로젝트 #1번째 게임 - 3번째 진행 글 (0) | 2018.01.10 |
"Simple Game's" 프로젝트 #1번째 게임 - 2번째 진행 글 (0) | 2018.01.09 |
발견하다... (0) | 2017.08.03 |