Spec-Zone.ru › Web APIs

WebGL2RenderingContext: метод drawElementsInstanced()

Базовая Широко поддерживается

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2021 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод WebGL2RenderingContext.drawElementsInstanced() из WebGL 2 API отображает примитивы из данных массива, как и метод gl.drawElements(). Кроме того, он может выполнять несколько экземпляров набора элементов.

Примечание: При использовании WebGL 1, расширение ANGLE_instanced_arrays также может предоставить этот метод.

Синтаксис

drawElementsInstanced(mode, count, type, offset, instanceCount)

Параметры

mode

Тип GLenum, определяющий тип примитива для рендеринга. Возможные значения:

  • gl.POINTS: Рисует одну точку.
  • gl.LINE_STRIP: Рисует прямую линию до следующей вершины.
  • gl.LINE_LOOP: Рисует прямую линию до следующей вершины и соединяет последнюю вершину с первой.
  • gl.LINES: Рисует линию между парой вершин.
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES: Рисует треугольник для группы из трёх вершин.
count

Тип GLsizei, определяющий количество элементов для рендеринга.

type

Тип GLenum, определяющий тип значений в буфере массива элементов. Возможные значения:

  • gl.UNSIGNED_BYTE
  • gl.UNSIGNED_SHORT
  • gl.UNSIGNED_INT При использовании расширения OES_element_index_uint.
offset

Тип GLintptr, определяющий смещение в буфере массива элементов. Должно быть кратным размеру заданного type.

instanceCount

Тип GLsizei, определяющий количество экземпляров набора элементов для выполнения.

Возвращаемое значение

Ничего (undefined).

Исключения

  • Если mode не соответствует одному из допустимых значений, выбрасывается ошибка gl.INVALID_ENUM.
  • Если offset не является кратным размеру заданного типа, выбрасывается ошибка gl.INVALID_OPERATION.
  • Если count или instanceCount отрицательны, выбрасывается ошибка gl.INVALID_VALUE.

Примеры

gl.drawElementsInstanced(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);

Спецификации

Спецификация
Спецификация WebGL 2.0
# 3.7.9

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
drawElementsInstanced 56 79 51 43 15 58 51 43 15 7.0 58

См. также

  • ext.drawArraysInstancedANGLE()
  • ext.vertexAttribDivisorANGLE()
  • WebGLRenderingContext.drawArrays()
  • WebGLRenderingContext.drawElements()
  • WebGL2RenderingContext.drawArraysInstanced()
  • WebGL2RenderingContext.vertexAttribDivisor()
  • WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()

© 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/WebGL2RenderingContext/drawElementsInstanced

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API