// 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);
    }