인풋매니저, 리소스매니저 구조 생성 및 리소스 정리
This commit is contained in:
62
Assets/Resources/Art/UnityChan/Shader/CharaOutline.cg
Normal file
62
Assets/Resources/Art/UnityChan/Shader/CharaOutline.cg
Normal file
@@ -0,0 +1,62 @@
|
||||
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
||||
|
||||
// Outline shader
|
||||
|
||||
// Material parameters
|
||||
float4 _Color;
|
||||
float4 _LightColor0;
|
||||
float _EdgeThickness = 1.0;
|
||||
float4 _MainTex_ST;
|
||||
|
||||
// Textures
|
||||
sampler2D _MainTex;
|
||||
|
||||
// Structure from vertex shader to fragment shader
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
// Float types
|
||||
#define float_t half
|
||||
#define float2_t half2
|
||||
#define float3_t half3
|
||||
#define float4_t half4
|
||||
|
||||
// Outline thickness multiplier
|
||||
#define INV_EDGE_THICKNESS_DIVISOR 0.00285
|
||||
// Outline color parameters
|
||||
#define SATURATION_FACTOR 0.6
|
||||
#define BRIGHTNESS_FACTOR 0.8
|
||||
|
||||
// Vertex shader
|
||||
v2f vert( appdata_base v )
|
||||
{
|
||||
v2f o;
|
||||
o.uv = TRANSFORM_TEX( v.texcoord.xy, _MainTex );
|
||||
|
||||
half4 projSpacePos = UnityObjectToClipPos( v.vertex );
|
||||
half4 projSpaceNormal = normalize( UnityObjectToClipPos( half4( v.normal, 0 ) ) );
|
||||
half4 scaledNormal = _EdgeThickness * INV_EDGE_THICKNESS_DIVISOR * projSpaceNormal; // * projSpacePos.w;
|
||||
|
||||
scaledNormal.z += 0.00001;
|
||||
o.pos = projSpacePos + scaledNormal;
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
// Fragment shader
|
||||
float4 frag( v2f i ) : COLOR
|
||||
{
|
||||
float4_t diffuseMapColor = tex2D( _MainTex, i.uv );
|
||||
|
||||
float_t maxChan = max( max( diffuseMapColor.r, diffuseMapColor.g ), diffuseMapColor.b );
|
||||
float4_t newMapColor = diffuseMapColor;
|
||||
|
||||
maxChan -= ( 1.0 / 255.0 );
|
||||
float3_t lerpVals = saturate( ( newMapColor.rgb - float3( maxChan, maxChan, maxChan ) ) * 255.0 );
|
||||
newMapColor.rgb = lerp( SATURATION_FACTOR * newMapColor.rgb, newMapColor.rgb, lerpVals );
|
||||
|
||||
return float4( BRIGHTNESS_FACTOR * newMapColor.rgb * diffuseMapColor.rgb, diffuseMapColor.a ) * _Color * _LightColor0;
|
||||
}
|
||||
Reference in New Issue
Block a user