private void Start() { neighbourFinder = new AsynchronNeighbourFinder(this); ChunkNeighbourTask.chunkGroup = chunkGroup; mainCam = Camera.main; noiseData.ApplyNoiseBiomData(); CreatePools(); ChunkGPUDataRequest.AssignEmptyMinDegreeBuffer(CreateEmptyMinDegreeBuffer()); chunkGPURequest = new ChunkGPUDataRequest(chunkPipelinePool, storageGroup, minDegreesAtCoordBufferPool); TriangulationTableStaticData.BuildLookUpTables(); watch.Start(); buildAroundSqrDistance = (long)buildAroundDistance * buildAroundDistance; startPos = StartPos; //CompressedMarchingCubeChunk chunk = FindNonEmptyChunkAround(player.position); //maxSqrChunkDistance = buildAroundDistance * buildAroundDistance; //BuildRelevantChunksParallelBlockingAround(chunk); CreatePlanetWithAsyncGPU(); //CreatePlanetFromMeshData(); //BuildRelevantChunksParallelWithAsyncGpuAround(chunk); //int amount = 5; //for (int x = -amount; x <= amount; x++) //{ // for (int y = -amount; y <= amount; y++) // { // CreateChunkWithAsyncGPUReadbackParallel(startPos + new Vector3(32 * x, -DEFAULT_CHUNK_SIZE, 32 * y)); // } //} //FindNonEmptyChunkAroundAsync(startPos, (chunk) => //{ // maxSqrChunkDistance = buildAroundDistance * buildAroundDistance; // BuildRelevantChunksParallelWithAsyncGpuAround(chunk); //}); }
protected void ReleaseBuffers() { chunkPipelinePool.DisposeAll(); minDegreesAtCoordBufferPool.DisposeAll(); ChunkGPUDataRequest.DisposeEmptyMinDegreeBuffer(); }