Пример #1
0
    public void GroupInit(ISF _isf)
    {
        DataManaging = ManagingMode.Grouped;

        InitComputeShader(_isf);
        InitGeometries();
    }
Пример #2
0
    public void Init(ISF _isf, int _MaxN = -1, int _CurN = -1)
    {
        DataManaging = ManagingMode.CenterPool;

        if (_MaxN > 0)
        {
            MaxN = _MaxN;
        }
        if (_CurN > 0)
        {
            CurN = _CurN;
        }

        InitComputeShader(_isf);

        int n = MaxN / ChunkSize;

        for (int i = 0; i < n; ++i)
        {
            ParticlePostionList.Add(new ComputeBuffer(ChunkSize, 4 * sizeof(float)));
        }

        if (MaxN % ChunkSize != 0)
        {
            ParticlePostionList.Add(new ComputeBuffer(ChunkSize, 4 * sizeof(float)));
        }


        InitGeometries();
        // ParticlePostion = new ComputeBuffer(MaxN, 4 * sizeof(float));
    }