Trailrenderer shader stacking issue?

Hi guys

This has been an ongoing source of annoyance for me, and I did some searching and haven't found a 100% solution yet.

So when trailrenderers overlap itself you get these annoying artifacts:
image

I found this thread that made a shader that got rid of that but it also got rid of transparency over other instances of transparency: https://answers.unity.com/questions/1138967/trail-renderer-overlap-changes-trail-colour.html#answer-1227662

So two bits of transparency over each other results in a them both looking solid in their own

image

The question is: Is getting rid of the limitations around the trailrenderer a big problem, that's why it (seems like) it hasn't been solved broadly yet?

Shader "TrailWithZWrite" {
     Properties{
         _Color("Main Color", Color) = (1,1,1,0.5)
         _AlphaTex("Base (RGB) Trans (A)", 2D) = "white" {}
         //_ExtrusionAmount("Z Extrusion Amount", Float) = 0
     }
         SubShader{
             Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
             LOD 100
 
             ZWrite On
             ZTest Less
             Blend SrcAlpha One
             //Offset 0, -5000
 
         Pass{
 
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
 
             #include "UnityCG.cginc"
 
             fixed4 _Color;
             sampler2D _AlphaTex;
             //float _ExtrusionAmount;
             float4 _AlphaTex_ST;
 
             struct v2f {
                 float4 pos : SV_POSITION;
                 half4 color : COLOR0;
                 float2 uv : TEXCOORD0;
             };
 
             v2f vert(appdata_full v)
             {
                 v2f o;
 
                 //float3 camDirObjSpace = normalize(ObjSpaceViewDir(v.vertex));
                 //v.vertex.xyz += _ExtrusionAmount * camDirObjSpace;
                 o.color = v.color;
 
                 o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
                 o.uv = TRANSFORM_TEX(v.texcoord, _AlphaTex);
                 return o;
             }
 
             fixed4 frag(v2f i) : SV_Target
             {
                 fixed4 texcol = tex2D(_AlphaTex, i.uv) * i.color;
                 return texcol * _Color;
             }
             ENDCG
         }
     }
     FallBack "Unlit/Transparent Cutout"
 }
73042-screenshot-32.png
357 x 294 - 16K
trails.png
142 x 142 - 9K

Comments

  • The question is: Is getting rid of the limitations around the trailrenderer a big problem, that's why it (seems like) it hasn't been solved broadly yet?
    Yes. :P
    Thanked by 1Tuism
  • edited
    For Control Shift I opted to just use a solid material with some glow

    Looks better than those rendering artifacts I think.
Sign In or Register to comment.