WEBGL_multi_draw: метод multiDrawElementsInstancedWEBGL()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Метод WEBGL_multi_draw.multiDrawElementsInstancedWEBGL() API WebGL отображает несколько примитивов из данных массива. Он идентичен нескольким вызовам метода gl.drawElementsInstanced().
Синтаксис
multiDrawElementsInstancedWEBGL(mode,
countsList, countsOffset,
type,
firstsList, firstsOffset,
instanceCountsList, instanceCountsOffset,
drawCount);
Параметры
mode-
Тип
GLenum, определяющий тип примитива для отрисовки. Возможные значения:-
gl.POINTS: Рисует одну точку. -
gl.LINE_STRIP: Рисует прямую линию до следующей вершины. -
gl.LINE_LOOP: Рисует прямую линию до следующей вершины и соединяет последнюю вершину с первой. -
gl.LINES: Рисует линию между парой вершин. gl.TRIANGLE_STRIPgl.TRIANGLE_FAN-
gl.TRIANGLES: Рисует треугольник для группы из трех вершин.
-
countsList-
Массив
Int32ArrayилиArray(изGLint) указывающий список количества индексов для отрисовки. countsOffset-
Значение
GLUint, определяющее стартовую позицию в массивеcountsList. - type
-
Тип
GLenum, определяющий тип значений в буфере массива элементов. Возможные значения:-
gl.UNSIGNED_BYTE -
gl.UNSIGNED_SHORT -
При использовании расширения
OES_element_index_uint:gl.UNSIGNED_INT
-
offsetsList-
Массив
Int32ArrayилиArray(изGLsizei) указывающий список начальных индексов для массивов векторов. offsetsOffset-
Значение
GLuint, определяющее стартовую позицию в массивеoffsetsList. instanceCountsList-
Массив
Int32ArrayилиArray(изGLsizei) указывающий список количества экземпляров диапазона элементов для выполнения. instanceCountsOffset-
Значение
GLuint, определяющее стартовую позицию в массивеinstanceCountsList. drawCount-
Значение
GLsizei, указывающее количество экземпляров диапазона элементов для выполнения.
Возвращаемое значение
Ничего.
Исключения
- Если
modeне соответствует допустимым значениям, будет выброшено исключениеgl.INVALID_ENUM. - Если
drawCountили элементы вcountsList,offsetsList, илиinstanceCountsListотрицательные, будет выброшено исключениеgl.INVALID_VALUE.
Примеры
const counts = new Int32Array(/* … */); const offsets = new Int32Array(/* … */); const instanceCounts = new Int32Array(/* … */); ext.multiDrawElementsInstancedWEBGL( gl.TRIANGLES, counts, 0, gl.UNSIGNED_SHORT, offsets, 0, instanceCounts, 0, counts.length, );
Спецификации
| Спецификация |
|---|
| Спецификация расширения WebGL WEBGL_multi_draw |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в iOS | Samsung Internet | WebView Android | |
multiDrawElementsInstancedWEBGL |
86 | 86 | Нет | 72 | 15 | 86 | Нет | Нет | 15 | 14.0 | 86 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL