Как работают параметры сдвига в DrawUserIndexedPrimitives в XNA?
В игре XNA создаю массив VertexPositionNormalTexture[8] и описываю там два прямоугольника, по 4 вершины на каждый. Создаю массив индексов int[12] и описываю 4 треугольника, на каждый по 3 индекса. Вот такой код при отрисовке
device.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList,
vertices, 0,
vertices.Length
, indices,
0,
indices.Length / 3
);
рисует два прямоугольника как и положено. Но когда я пытаюсь прямоугольники отрисовать двумя вызовами, получается странность. Вот так нормально рисуется первый прямоугольник:
device.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList,
vertices, 0,
4
, indices,
0,
2
);
А вот так второй не рисуется:
device.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList,
vertices, 4,//сдвиг от начала в массиве вершин
4
, indices,
6,//сдвиг от начала в массиве индексов
2
);
Здесь рисуем начиная от 4 вершины и от 6 индекса, но не отображается. Зато рисуется вот так:
device.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList,
vertices, 4,
4
, indices,
0,
2
);
Здесь рисуем начиная от 4 вершины но почему-то отображается если в массиве индексов рисуем от нуля. Непонятно, для чего нужен параметр indexOffset, если все равно рисуется, только если сдвиг индексов всегда на нуле.