GPURenderPassEncoder: метод beginOcclusionQuery()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Экспериментально: Это экспериментальная технология
Перед использованием в рабочей среде внимательно проверьте таблицу совместимости с браузерами по ссылке Таблица совместимости.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод beginOcclusionQuery() интерфейса GPURenderPassEncoder начинает запрос на проверку непрозрачности в указанном индексе соответствующего набора запросов GPUQuerySet (переданного в качестве значения свойства дескриптора occlusionQuerySet при вызове GPUCommandEncoder.beginRenderPass() для запуска прохода отрисовки).
Синтаксис
beginOcclusionQuery(queryIndex)
Параметры
queryIndex-
Индекс в наборе запросов
GPUQuerySetдля начала запроса проверки непрозрачности.
Возвращаемое значение
Ничего (Undefined).
Валидация
При вызове beginOcclusionQuery() должны быть соблюдены следующие критерии, иначе будет сгенерирована ошибка GPUValidationError, и интерфейс GPURenderPassEncoder станет недействительным:
- В свойстве дескриптора
occlusionQuerySetпри вызове исходного методаGPUCommandEncoder.beginRenderPass()был указан набор запросовGPUQuerySet. -
Значение
queryIndexменьше значенияGPUQuerySet.count. - Данные для
queryIndexеще не были записаны в текущем проходе отрисовки. - Для данного прохода отрисовки уже не активен запрос проверки непрозрачности (т.е. через предыдущий вызов
beginOcclusionQuery()).
Примеры
// ...
// Create a query set to hold the occlusion queries
const querySet = device.createQuerySet({
type: "occlusion",
count: 32,
});
// Render pass descriptor object, including the querySet
const renderPassDescriptor = {
colorAttachments: [
{
clearValue: clearColor,
loadOp: "clear",
storeOp: "store",
view: context.getCurrentTexture().createView(),
},
],
occlusionQuerySet: querySet,
};
// Begin the render pass
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
// Begin an occlusion query at index 0
passEncoder.beginOcclusionQuery(0);
// Run some rendering commands
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);
// End the occlusion query
passEncoder.endOcclusionQuery();
// ...
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
beginOcclusionQuery |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и 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/beginOcclusionQuery