private static void UpdateEntityBuffer()
        {
            var entitiesDataArray = new RayMarchingEntity.RayMarchingEntityData[MaxEntityAmount];

            for (int i = 0; i < RayMarchingEntityCount; i++)
            {
                entitiesDataArray[i] = _entities[i].data;
            }

            if (_entityBuffer == null)
            {
                _entityBuffer = new ComputeBuffer(MaxEntityAmount, RayMarchingEntityStride);
                Debug.Log("Remake entity buffer");
            }

            if (_entityBuffer.count != MaxEntityAmount)
            {
                Debug.Log("Count different");
                _entityBuffer.Release();
                _entityBuffer = new ComputeBuffer(MaxEntityAmount, RayMarchingEntityStride);
            }

            //TODO: transform this to only update the necessary entities instead of copy the entire array
            _entityBuffer.SetData(entitiesDataArray, 0, 0, RayMarchingEntityCount);
            Dirty = false;
        }
 public static void UpdateEntity(RayMarchingEntity.RayMarchingEntityData data, int id)
 {
     _entitiesData[id] = data;
     Dirty             = true;
 }