Mesh.GetNativeIndexBufferPtr
Declaration
public IntPtr GetNativeIndexBufferPtr();Возвращаемое значение
IntPtr Указатель на буфер индекса API базовой графики.
Описание
Получает указатель на буфер индекса из графической среды (базовая графика API).
Используйте эту функцию для получения указателя/обработчика, соответствующего буферу индекса Mesh, как он представлен в нативной графике API. Это может быть использовано для включения манипуляции мешем из плагины с нативным кодом.
Данные буфера индекса либо 16 или 32 бита на индекс, в зависимости от indexFormat. Расположение индексного буфера в остальном зависит от MeshTopology используемого (см. SetIndices). Наиболее распространенным случаем являются меши, состоящие из треугольных списков, которые имеют индексные буферы с тремя индексами на треугольник.
Тип возвращаемых данных зависит от базовой графики API:
- ID3D11Buffer на D3D11
- ID3D12Resource на D3D12
- id<MTLBuffer> на Metal
- буфер "имя" (как GLuint) на OpenGL/ES
- внутреннее представление в Vulkan, к которому следует обращаться через интерфейс IUnityGraphicsVulkan
Для большинства случаев использования (при записи Mesh данных из собственного кода), вам нужно пометить Mesh как "динамический" (см. MarkDynamic) перед получением указателя собственного буфера. Обычно это переключает буферы на CPU-записываемые.
Обратите внимание, что вызов этой функции при использовании многопоточного рендирования будет синхронизироваться с потоком рендирования (медленная операция), поэтому лучшим решением является установка необходимых указателей буфера только во время инициализации.
Дополнительные ресурсы: Плагины собственного кода, GetNativeVertexBufferPtr, SetIndices.