Объявление
public static void DrawProceduralIndirectNow(MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset);public static void DrawProceduralIndirectNow(MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset);
Параметры
topology | Топология процедурной геометрии. |
bufferWithArgs | Буфер с аргументами отрисовки. |
argsOffset | Байтовое смещение, где в буфере находятся аргументы отрисовки. |
Описание
Рисует процедурную геометрию на GPU.
DrawProceduralIndirectNow выполняет вызов отрисовки на графическом процессоре без каких-либо буферов вершин или индексов. Объем геометрии для рисования считывается из ComputeBuffer. Типичный пример использования — генерация произвольного объема данных из ComputeShader и последующая их визуализация без необходимости обратного считывания в ЦП.
В основном это полезно на оборудовании уровня Shader Model 4.5, где шейдеры могут считывать произвольные данные из ComputeBuffer буферы.
Буфер с аргументами, bufferWithArgs
, должен содержать четыре целых числа при заданном смещении argsOffset
: количество вершин на экземпляр, экземпляр количество, начальное местоположение вершины и начальное местоположение экземпляра. Это соответствует Direct3D11 DrawInstancedIndirect и эквивалентным функциям в других графических API. В версиях OpenGL до 4.2 и во всех версиях OpenGL ES, поддерживающих косвенную отрисовку, последний аргумент зарезервирован и поэтому должен быть равен нулю.
Обратите внимание, что этот вызов выполняется немедленно, аналогично Graphics.DrawMeshNow. Он использует текущую заданную цель рендеринга, матрицы преобразования и проход шейдера.
Подобные функции есть и в CommandBuffers, см. CommandBuffer.DrawProceduralIndirect.
Смотрите так же: Graphics.DrawProceduralNow, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.
Объявление
public static void DrawProceduralIndirectNow(MeshTopology topology, GraphicsBuffer indexBuffer, ComputeBuffer bufferWithArgs, int argsOffset);public static void DrawProceduralIndirectNow(MeshTopology topology, GraphicsBuffer indexBuffer, GraphicsBuffer bufferWithArgs, int argsOffset);
Параметры
topology | Топология процедурной геометрии. |
indexBuffer | Индексный буфер, используемый для отправки вершин в GPU.. |
bufferWithArgs | Буфер с аргументами отрисовки. |
argsOffset | Байтовое смещение, где в буфере находятся аргументы отрисовки. |
Описание
Рисует процедурную геометрию на GPU.
DrawProceduralIndirectNow выполняет вызов отрисовки на графическом процессоре без буфера вершин. Объем геометрии для рисования считывается из ComputeBuffer. Типичный пример использования — генерация произвольного объема данных из ComputeShader и последующая их визуализация без необходимости обратного считывания в ЦП.
В основном это полезно на оборудовании уровня Shader Model 4.5, где шейдеры могут считывать произвольные данные из ComputeBuffer буферы.
Буфер с аргументами, bufferWithArgs
, должен содержать пять целых чисел с заданным смещением argsOffset
: число индексов на экземпляр, экземпляр количество, начальное положение индекса, базовое положение вершины и начальное положение экземпляра. Это соответствует Direct3D11 DrawIndexedInstancedIndirect и эквивалентным функциям в других графических API. В версиях OpenGL до 4.2 и во всех версиях OpenGL ES, поддерживающих косвенную отрисовку, последний аргумент зарезервирован и поэтому должен быть равен нулю.
Обратите внимание, что этот вызов выполняется немедленно, аналогично Graphics.DrawMeshNow. Он использует текущую заданную цель рендеринга, матрицы преобразования и проход шейдера.
Подобные функции есть и в CommandBuffers, см. CommandBuffer.DrawProceduralIndirect.
Смотрите так же: Graphics.DrawProceduralNow, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.