Это поначалу меня тоже смутило. Еще один способ думать об этом визуально (я большой визуальный мыслитель, так что, возможно, это вам тоже поможет).
Развернемся на примере Зезбы, скажем, мы хотим нарисовать четырехугольник, используя два треугольника:
Как он / она указал, это можно сделать всего четырьмя вершинами. Таким образом, ваш буфер вершин будет содержать только ЧЕТЫРЕ записи. Я обозначу эти {A, B, C, D}:
Однако, поскольку графические процессоры имеют дело с треугольниками, нам все еще нужно определить группировки из ТРИ вершин, чтобы сообщить GPU, как создавать треугольники из списка уже определенных вершин. Это цель индексного буфера.
Вы можете думать о буфере индексов просто как о списке индексов в буфере вершин, который определяет треугольники. Таким образом, поскольку мы формируем два треугольника, и каждому треугольнику нужны три вершины, для индексного буфера потребуется шесть записей.
Здесь немного важен и порядок. Я не буду вдаваться в подробности, но давайте просто скажем, что я хочу определить свои треугольники против часовой стрелки . Я определю два моих треугольника как {B, A, C} и {B, C, D} . Можно прекрасно использовать вершины для нескольких треугольников.
Итак, мои буферы выглядят так:
Надеюсь, это поможет.