// Update is called once per frame
void Update()
{
RepCount = 0;
for(int i = 0; i < Meshes.Length; i++) {
mesh = Meshes[i].sharedMesh;
RepCount++;
mesh.vertexBufferTarget |= GraphicsBuffer.Target.Raw;
BufferData = new ComputeBuffer(mesh.vertexCount, 12);
UnityEngine.Rendering.VertexAttributeDescriptor[] Attributes = mesh.GetVertexAttributes();
GraphicsBuffer MeshBuffer = mesh.GetVertexBuffer(Attributes[0].stream);
DataShader.SetInt("Stride", mesh.GetVertexBufferStride(Attributes[0].stream));
DataShader.SetInt("AttributeOffset", mesh.GetVertexAttributeOffset(Attributes[0].attribute));
DataShader.SetBuffer(Attributes[0].dimension - 1, "GraphicsBuffer", MeshBuffer);
DataShader.SetBool("Is16Bit", false);
DataShader.SetBuffer(2, "Output3", BufferData);
DataShader.Dispatch(2, (int)Mathf.CeilToInt(mesh.vertexCount / 1023.0f), 1, 1);
Data = new Vector3[mesh.vertexCount];
// BufferData.GetData(Data);
MeshBuffer.Release();
BufferData.Release();
}
Debug.Log(RepCount);
}