Ваша геометрия имеет несколько вершин. Например, куб имеет по крайней мере 36 (6 для каждой из 6 сторон, потому что каждой стороне нужно 2 треугольника, чтобы сделать прямоугольник, а каждому треугольнику нужно 3 вершины). По умолчанию три рисуют все 36. Чтобы нарисовать только первые 6, вы должны позвонить setDrawRange(0, 6)
. Чтобы нарисовать последние 6, вы бы позвонили setDrawRange(30, 6)
. Чтобы нарисовать все 36 из них, вы должны позвонить setDrawRange(0, 36)
. Вершины могут быть проиндексированы или не проиндексированы. Если они проиндексированы, это просто означает, что в данных есть уровень косвенности. Вместо setDrawRange(0, 6)
ссылаясь на первые 6 вершин, он вместо этого ссылается на первые 6 индексов, которые, в свою очередь, ссылаются на 6 вершин (некоторые могут повторяться, если индексы повторяются).
Это не распространено для использования setDrawRange
но в одном случае, скажем, вы хотите нарисовать кучу линий. Вместо того чтобы создавать множество отдельных линейных объектов, вы просто создаете одну геометрию с пробелом для группы линий (скажем, 1000 линий, то есть 2000 вершин). Затем вы добавляете линии к геометрии по мере необходимости и говорите трем, чтобы они рисовали только первые N линий, вызывая setDrawRange(0, numLines * 2)
(2 вершины на линию)
Подробнее о геометрии можно узнать здесь и здесь