     float3 dir = normalize((mul(_Transform, float4(tangent.xyz * tangent.w, 0.0))).xyz);
 
     float s = _OnlySelected ? _Selection[v.instanceID] : 1.0f;
+    s *= abs(mul(UNITY_MATRIX_V, float4(pos, 1.0)).z);
     float4 vertex = v.vertex;
     vertex.xyz += pos + dir * v.uv.x * _TangentSize * s;
     vertex = mul(UNITY_MATRIX_VP, vertex);

    float3 dir = normalize((mul(_Transform, float4(_Normals[v.instanceID], 0.0))).xyz);

    float s = _OnlySelected ? _Selection[v.instanceID] : 1.0f;
    float4 vertex = v.vertex;
    vertex.xyz += pos + dir * v.uv.x * _NormalSize * s;
    vertex = mul(UNITY_MATRIX_VP, vertex);

    float3 dir = normalize((mul(_Transform, float4(binormal, 0.0))).xyz);

    float s = _OnlySelected ? _Selection[v.instanceID] : 1.0f;
    s *= abs(mul(UNITY_MATRIX_V, float4(pos, 1.0)).z);
    float4 vertex = v.vertex;
    vertex.xyz += pos + dir * v.uv.x * _BinormalSize * s;
    vertex = mul(UNITY_MATRIX_VP, vertex);
