Spec-Zone.ru › Web APIs

GPURenderPassEncoder: метод drawIndexed()

Ограниченная доступность

Эта функция не относится к базовым, так как она не работает во всех широко используемых браузерах.

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

Экспериментально: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

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

Метод drawIndexed() интерфейса GPURenderPassEncoder отрисовывает индексированные примитивы на основе буферов вершин и индексов, предоставленных setVertexBuffer() и setIndexBuffer().

Синтаксис

drawIndexed(indexCount)
drawIndexed(indexCount, instanceCount)
drawIndexed(indexCount, instanceCount, firstIndex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex, firstInstance)

Параметры

indexCount

Число, определяющее количество индексов для отрисовки.

instanceCount Необязательно

Число, определяющее количество экземпляров для отрисовки. Если опущено, instanceCount по умолчанию равно 1.

firstIndex Необязательно

Число, определяющее смещение в буфере индексов для начала отрисовки. Если опущено, firstIndex по умолчанию равно 0.

baseVertex Необязательно

Число, добавляемое к каждому значению индекса перед индексированием в буферы вершин. Если опущено, baseVertex по умолчанию равно 0.

firstInstance Необязательно

Число, определяющее первый экземпляр для отрисовки. Если опущено, firstInstance по умолчанию равно 0.

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

None (Undefined).

Примеры

В примере «Отбрасывание теней» WebGPU Samples, drawIndexed() используется в двух отдельных пассах отрисовки в каждом кадре анимации, один для заполнения буфера теней и один для отрисовки основного вида сцены. Изучите пример кода для полного контекста.

// ...

const commandEncoder = device.createCommandEncoder();
{
  const shadowPass = commandEncoder.beginRenderPass(shadowPassDescriptor);
  shadowPass.setPipeline(shadowPipeline);
  shadowPass.setBindGroup(0, sceneBindGroupForShadow);
  shadowPass.setBindGroup(1, modelBindGroup);
  shadowPass.setVertexBuffer(0, vertexBuffer);
  shadowPass.setIndexBuffer(indexBuffer, "uint16");
  shadowPass.drawIndexed(indexCount);

  shadowPass.end();
}
{
  const renderPass = commandEncoder.beginRenderPass(renderPassDescriptor);
  renderPass.setPipeline(pipeline);
  renderPass.setBindGroup(0, sceneBindGroupForRender);
  renderPass.setBindGroup(1, modelBindGroup);
  renderPass.setVertexBuffer(0, vertexBuffer);
  renderPass.setIndexBuffer(indexBuffer, "uint16");
  renderPass.drawIndexed(indexCount);

  renderPass.end();
}

// ...

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

Спецификация
WebGPU
# dom-gpurendercommandsmixin-drawindexed

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
drawIndexed
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121

См. также

  • API WebGPU

© 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/GPURenderPassEncoder/drawIndexed

Spec-Zone.ru

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