Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

CommandBuffer.DrawProceduralIndirect

Объявление

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties);

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset);

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs);

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties);

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset);

public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs);

Параметры

matrix Используемая матрица преобразования.
material Материал для использования.
shaderPass Какой проход шейдера использовать (или -1 для всех проходов).
topology Топология процедурной геометрии.
properties Дополнительные свойства материала для применения непосредственно перед визуализацией. См. MaterialPropertyBlock.
bufferWithArgs Буфер с аргументами отрисовки.
argsOffset Байтовое смещение, где в буфере находятся аргументы отрисовки.

Описание

Добавляет команду "draw procedural geometry".

При выполнении командного буфера выполняется вызов отрисовки на графическом процессоре без каких-либо вершинных или индексных буферов. Объем геометрии для рисования считывается из ComputeBuffer. Типичный пример использования — генерация произвольного объема данных из ComputeShader и последующая их визуализация без необходимости обратного считывания в ЦП.

Это полезно только на оборудовании уровня Shader Model 4.5, где шейдеры могут считывать произвольные данные из ComputeBuffer буферы.

Буфер с аргументами, bufferWithArgs, должен содержать четыре целых числа с заданным смещением argsOffset: количество вершин на экземпляр, количество экземпляров, начальное местоположение вершины и начальное местоположение экземпляра. Это соответствует Direct3D11 DrawInstancedIndirect и эквивалентным функциям в других графических API. В версиях OpenGL до 4.2 и во всех версиях OpenGL ES, поддерживающих косвенную отрисовку, последний аргумент зарезервирован и поэтому должен быть равен нулю.

В вершинном шейдере обычно используются входные переменные SV_VertexID и SV_InstanceID для извлечения данных из некоторых буферов.

Смотрите так же: DrawProcedural, MaterialPropertyBlock, Graphics.DrawProceduralIndirect, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.


Объявление

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties);

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset);

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs);

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset, MaterialPropertyBlock properties);

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs, int argsOffset);

public void DrawProceduralIndirect(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, GraphicsBuffer bufferWithArgs);

Параметры

indexBuffer Индексный буфер, используемый для передачи вершин графическому процессору.
matrix Используемая матрица преобразования.
material Материал для использования.
shaderPass Какой проход шейдера использовать (или -1 для всех проходов).
topology Топология процедурной геометрии.
bufferWithArgs Буфер с аргументами отрисовки.
argsOffset Байтовое смещение, где в буфере находятся аргументы отрисовки.
properties Дополнительные свойства материала для применения непосредственно перед визуализацией. См. MaterialPropertyBlock.

Описание

Добавляет команду "draw procedural geometry".

При выполнении командного буфера выполняется вызов отрисовки на графическом процессоре без буфера вершин. Объем геометрии для рисования считывается из ComputeBuffer. Типичный пример использования — генерация произвольного объема данных из ComputeShader и последующая их визуализация без необходимости обратного считывания в ЦП.

Это полезно только на оборудовании уровня Shader Model 4.5, где шейдеры могут считывать произвольные данные из ComputeBuffer буферы.

Буфер с аргументами, bufferWithArgs, должен содержать пять целых чисел с заданным смещением argsOffset: количество индексов на экземпляр, количество экземпляров, начальное местоположение индекса, базовое местоположение вершины и начальное местоположение экземпляра. Это соответствует Direct3D11 DrawIndexedInstancedIndirect и эквивалентным функциям в других графических API. В версиях OpenGL до 4.2 и во всех версиях OpenGL ES, поддерживающих косвенную отрисовку, последний аргумент зарезервирован и поэтому должен быть равен нулю.

В вершинном шейдере обычно используются входные переменные SV_VertexID и SV_InstanceID для извлечения данных из некоторых буферов.

Смотрите так же: DrawProcedural, MaterialPropertyBlock, Graphics.DrawProceduralIndirect, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3