Unity 6.3
0 онлайн 62 гостей 3 в системе
Вход

Graphics.DrawProcedural

Declaration

public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, int vertexCount, int instanceCount, Camera camera, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows, int layer);

Параметры

Параметр Описание
материал Material использовать.
границы Ограничительный том, окружающий экземпляры, которые вы собираетесь нарисовать.
топология Топология процедурной геометрии.
vertexCount Количество вершин для отображения.
instanceCount Количество экземпляров для отображения.
камера Если null (по умолчанию), сетка будет рисоваться во всех камерах. В противном случае она будет отображаться только в заданной Camera.
свойства Дополнительные свойства материала, которые должны быть применены к материалу непосредственно перед рисованием этой сетки. См. MaterialPropertyBlock.
castShadows Определяет, может ли сетка создавать тени.
receiveShadows Определяет, может ли сетка получать тени.
слой Слой для использования.

Описание

Эта функция теперь устарела. Для неиндексированного отображения используйте Graphics.RenderPrimitives Для индексированного отображения используйте Graphics.RenderPrimitivesIndexed. Рисует процедурную геометрию на GPU.

Эта функция теперь устарела. Для неиндексированного отображения используйте RenderPrimitives вместо этого. Для индексированного отображения используйте Graphics.RenderPrimitivesIndexed.

DrawProcedural выполняет вызов отрисовки на GPU без каких-либо вершинных или индексных буферов. Если шейдеру требуются вершинные буферы, то в зависимости от платформы происходит одно из двух: если вершинный буфер объявлен, но компилятор может его оптимизировать, выполняется обычный вызов DrawProcedural; если компилятор не может оптимизировать объявление вершинного буфера, вызов будет преобразован в обычный вызов отрисовки меша с эмулированными вершинными буферами. Второй вариант обходится дороже по производительности, поэтому при использовании DrawProcedural вершинные входы в шейдерах объявлять не рекомендуется. В основном это полезно на Shader Model 4.5 уровне оборудования, где шейдеры могут читать произвольные данные из ComputeBuffer буферов.

Существует также аналогичная функциональность в CommandBuffers, см. CommandBuffer.DrawProcedural.

Для неиндексированного отображения: public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, int vertexCount, int instanceCount = 1, Camera camera = null, MaterialPropertyBlock properties = null, ShadowCastingMode castShadows = ShadowCastingMode.On, bool receiveShadows = true, int layer = 0)

Для индексированного отображения (принимает GraphicsBuffer indexBuffer): public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, GraphicsBuffer indexBuffer, int indexCount, int instanceCount = 1, Camera camera = null, MaterialPropertyBlock properties = null, ShadowCastingMode castShadows = ShadowCastingMode.On, bool receiveShadows = true, int layer = 0)

Дополнительные ресурсы: Graphics.RenderPrimitives, Graphics.RenderPrimitivesIndexed, Graphics.DrawProceduralIndirect, SystemInfo.supportsInstancing.

Declaration

public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, GraphicsBuffer indexBuffer, int indexCount, int instanceCount, Camera camera, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows, int layer);

Параметры

Параметр Описание
материал Material использовать.
границы Ограничительный том, окружающий экземпляры, которые вы собираетесь нарисовать.
топология Топология процедурной геометрии.
indexBuffer Буфер индекса, используемый для представления вершин в GPU.
instanceCount Количество экземпляров для отображения.
indexCount Количество индексов для отображения.
камера Если null (по умолчанию), сетка будет рисоваться во всех камерах. В противном случае она будет отображаться только в заданной Camera.
свойства Дополнительные свойства материала, которые должны быть применены к материалу непосредственно перед рисованием этой сетки. См. MaterialPropertyBlock.
castShadows Определяет, может ли сетка создавать тени.
receiveShadows Определяет, может ли сетка получать тени.
слой Слой для использования.

Описание

Чертает процедурную геометрию на GPU, с буфером индекса.

Используйте флаг цели GraphicsBuffer.Target.Index для создания буфера индекса.