Bug: When PolylinePath contains (0,0,0) thickness and caps don't render correctly
Code that reproduces (I added to main camera):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Shapes;
[ExecuteAlways]
public class MyLines : MonoBehaviour {
List<polylinepath> paths;
int numLines = 5;
void OnEnable() {
if (paths == null) {
paths = new List<polylinepath>();
for (int i = 0; i < numLines; ++i) {
float x = i * 1.5f;
PolylinePath p = new PolylinePath();
paths.Add(p);
p.AddPoint(x, 0, 0, new Color(1, 0, 0));
p.AddPoint(x, 2, 20, new Color(0, 1, 0));
p.AddPoint(x, 4, 0, new Color(0, 0, 1));
}
}
}
void OnPostRender() {
if (!enabled) return;
// Drawing happens here
Draw.BlendMode = ShapesBlendMode.Opaque;
foreach (PolylinePath p in paths) {
Draw.Polyline( p, closed:true, thickness:0.5f );
}
}
// Disposing of mesh data happens here
void OnDestroy() {
foreach (PolylinePath p in paths) {
p.Dispose();
}
}
}
Sample images
Here just the first polyline has a (0,0,0) point.

Here I made the first point always (0,0,0)

Reporting a bug? please specify Unity version:
2019.4.0f1
Reporting a bug? please specify Shapes version:
1.1.1
Reporting a bug? please specify Render Pipeline:
As far as I know, this is not so much about having points at (0,0,0), but rather about billboarded polylines that are edge-on in screen space generally have some degenerate cases, especially with large thickness values
it's a pretty hard problem to solve, so unfortunately this will take a while as it's both low prio and a difficult one I'm afraid :c