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

Mesh.indexBufferTarget

Declaration

public GraphicsBuffer.Target indexBufferTarget;

Описание

Предполагаемое использование буфера индекса Mesh GPU.

По умолчанию буферы индекса сетки имеют цель использования GraphicsBuffer.Target.Index. Если вы хотите получить доступ к буферу индекса сетки из вычислительного шейдера, необходимо запросить дополнительные цели, например GraphicsBuffer.Target.Raw.

При установке этого свойства в новое значение, Unity уничтожает существующий буфер и создает новый буфер с указанной целью. Для того, чтобы новый буфер был правильно заполнен данными, данные сетки должны находиться на CPU. Вы можете проверить свойство Mesh.isReadable, чтобы определить, доступны ли данные сетки на CPU.

using UnityEngine;

public class ExampleScript : MonoBehaviour { public Mesh mesh; public ComputeShader computeShader; void Start() { // Mark the index buffer as needing "Raw" // (ByteAddressBuffer, RWByteAddressBuffer in HLSL shaders) // access. mesh.indexBufferTarget |= GraphicsBuffer.Target.Raw; // Get the index buffer of the Mesh, and set it up // as a buffer parameter to a compute shader. var indexBuffer = mesh.GetIndexBuffer(); computeShader.SetBuffer(0, "MeshIndexBuffer", indexBuffer); indexBuffer.Dispose(); } }

Дополнительные ресурсы: ,Target,, ,GetIndexBuffer,, ,vertexBufferTarget,.