public GridOptimizer(ParticleNumEnum numParticleEnum, Vec range, Dim dimension) { numObjects = (int)numParticleEnum; threadGroupSize = numObjects / SIMULATION_BLOCK_SIZE_FOR_GRID; // 名前からコンピュートシェーダを取得 BitonicCS = (ComputeShader)Resources.Load("BitonicSort"); GridSortCS = (ComputeShader)Resources.Load(Enum.GetName(typeof(GridType), dimension.GetGridType())); gridDim = dimension; numGrid = (int)dimension.OwnMultiply(); gridH = dimension.GetGridH(range); gridBuffer = new ComputeBuffer(numObjects, Marshal.SizeOf(typeof(Uint2))); gridPingPongBuffer = new ComputeBuffer(numObjects, Marshal.SizeOf(typeof(Uint2))); gridIndicesBuffer = new ComputeBuffer(numGrid, Marshal.SizeOf(typeof(Uint2))); sortedObjectsBufferOutput = new ComputeBuffer(numObjects, Marshal.SizeOf(typeof(Data))); Debug.Log("=== Initialized Grid Sort Package === \nRange : " + range + "\nNumGrid : " + numGrid + "\nGridDim : " + gridDim + "\nGridH : " + gridH); }
public NeighborSearchSetting3D(ParticleNumEnum num, Vector3 range, IntDim3D dim) : base(num, range, dim) { }
public NeighborSearchSetting(ParticleNumEnum num, Vec range, Dim dim) { particleScatterRange = range; gridDimension = dim; gridOptimizer = new GridOptimizer <MyParticleData <Vec>, Dim, Vec>(num, particleScatterRange, gridDimension); }