Ваш массив треугольников будет
0, 1, 2
1, 2, 3
2, 3, 4
3, 4, 5
5 отбрасывает вас, но у вас также есть только 4 треугольника.
В этом случае вам нужно обернуть треугольники
Я бы предложил переформатировать генерацию вашего треугольника так:
for(int i = 0; i < vertices0.Count; i++)
{
triangles0.Add(i);
triangles0.Add((i + 1) % vertices0.Count);
triangles0.Add((i + 2) % vertices0.Count);
}
Оператор модуля здесь «обернет» ваши значения, если они больше, чем число.Я также удалил -1 из числа вершин, потому что вы на самом деле не добавляли 5-й треугольник
Это все равно не делает звезду, хотя она образует пятиугольник и выдает следующие треугольники:
0,1,2
1,2,3
2,3,4
3,4,0
4,0,1
У него также есть много перекрывающихся треугольников, но я уверен, что вы можете модифицировать его, чтобы делать то, что вы хотите отсюда