Unity 6.3
0 онлайн 53 гостей 3 в системе
Вход

Данные индекса сетки

Массив индексов содержит целые числа, которые относятся к элементам массива позиций вершин. Эти целые числа называются индексами.

Unity использует индексы для соединения вершинных позиций в грани. Число индексов, составляющих каждую грань, зависит от топологии сетки.

В течение Mesh класс, вы можете получить эти данные через Mesh.GetIndices, и установить его с помощью Mesh.SetIndicesUnity также хранит эти данные в Mesh.triangles, но это более старое свойство является менее эффективным и удобным для пользователя.

Примечание: Топология Points не создает поверхности; вместо этого Unity отображает одну точку в каждом положении. Все другие топологии сетки используют более одного индекса для создания поверхностей или рёбер.

Например, для сетки, имеющей массив индексов, содержащий следующие значения:

0,1,2,3,4,5

Если сетка имеет треугольную топологию, то первые три элемента (0,1,2) идентифицируют один треугольник, а следующие три элемента (3, 4, 5) идентифицируют другой треугольник. Нет ограничения на количество граней, которые вершина может придать. Это означает, что одна и та же вершина может появляться в массиве индексов несколько раз. Например, массив индексов может содержать следующие значения:

0,1,2,1,2,3

Если сетка имеет треугольную топологию, то первые три элемента (0,1,2) идентифицируют один треугольник, а следующие три элемента (1,2,3) идентифицируют другой треугольник, вершины которого совпадают с вершинами первого.

Порядок намотки

Порядок вершин в каждой группе в массиве индексов называется порядком вершин в порядок намотки. Unity использует порядок намотки для определения того, обращена ли поверхность вперед или назад, и, в свою очередь, должен ли он отображать поверхность или вычеркивать ее (исключать из отображения). Unity отображает многоугольники, обращенные вперед, и удаляет многоугольники, обращенные назад. Unity использует порядок намотки по часовой стрелке, то есть Unity рассматривает любую сторону, где индексы соединяются по часовой стрелке, как обращенную вперед.

Порядок витков Unity, визуализированный на призме
Порядок витков Unity, визуализированный на призме

Вышеприведенная диаграмма демонстрирует, как Unity использует порядок витков. Порядок вершин в каждой стороне определяет направление нормали для этой стороны, и Unity сравнивает это с направлением вперед текущей перспективы камеры. Если нормаль указывает в сторону от направления вперед текущей камеры, то она обращена назад. Ближайший треугольник упорядочен (1, 2, 3), что является направлением по часовой стрелке относительно текущей перспективы, так что треугольник обращен вперед. Дальнейший треугольник упорядочен (4, 5, 6), что с этой перспективы является направлением против часовой стрелки, так что треугольник обращен назад.