Question by 
               kmsjkh · Nov 06, 2018 at 03:53 PM · 
                shadershadersshader programmingoutline  
              
 
              why outline is drawed only on front side of skinned mesh render
i'm using quick outline asset(https://assetstore.unity.com/packages/tools/particles-effects/quick-outline-115488)
it works other mesh render , but on skinned mesh renderer , outline is drawed on only front side of character like image i i don't know why? is there anyone why this happen.....

[2]: /storage/temp/127314-20181107004649.png
 
                 
                20181107004649.png 
                (26.7 kB) 
               
 
                
                 
                20181107004659.png 
                (35.6 kB) 
               
 
              
               Comment
              
 
               
              Answer by kmsjkh · Nov 06, 2018 at 03:56 PM
Shader "Custom/Outline Fill" { Properties { [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 0
 _OutlineColor("Outline Color", Color) = (1, 1, 1, 1)
 _OutlineWidth("Outline Width", Range(0, 10)) = 2
}
SubShader { Tags { "Queue" = "Transparent+110" "RenderType" = "Transparent" "DisableBatching" = "True" }
 Pass {
   Name "Fill"
   Cull Off
   ZTest [_ZTest]
   ZWrite Off
   Blend SrcAlpha OneMinusSrcAlpha
   ColorMask RGB
   Stencil {
     Ref 1
     Comp NotEqual
   }
   CGPROGRAM
   #include "UnityCG.cginc"
   #pragma vertex vert
   #pragma fragment frag
   struct appdata {
     float4 vertex : POSITION;
     float3 normal : NORMAL;
     float3 smoothNormal : TEXCOORD3;
     UNITY_VERTEX_INPUT_INSTANCE_ID
   };
   struct v2f {
     float4 position : SV_POSITION;
     fixed4 color : COLOR;
     UNITY_VERTEX_OUTPUT_STEREO
   };
   uniform fixed4 _OutlineColor;
   uniform float _OutlineWidth;
   v2f vert(appdata input) {
     v2f output;
     UNITY_SETUP_INSTANCE_ID(input);
     UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
     float3 normal = any(input.smoothNormal) ? input.smoothNormal : input.normal;
     float3 viewPosition = UnityObjectToViewPos(input.vertex);
     float3 viewNormal = normalize(mul((float3x3)UNITY_MATRIX_IT_MV, normal));
     output.position = UnityViewToClipPos(viewPosition + viewNormal * -viewPosition.z * _OutlineWidth / 1000.0);
     output.color = _OutlineColor;
     return output;
   }
   fixed4 frag(v2f input) : SV_Target {
     return input.color;
   }
   ENDCG
 }
} }
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                