private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { var sw = Stopwatch.StartNew(); var chunks = _chunkStack.Pull(4); _chunkStack.Push(chunks); Debug.Log($"{sw.ElapsedTicks / 10000f} ms, {chunks.Length} count"); } }
public VoxelVolume Create(VoxelVolumeData volumeData) { var volume = _volumeStack.Pull(); var chunkSize = volumeData.chunkSize; var volumeSize = volumeData.volumeModel.Size; var volumeMaterial = volumeData.volumeMaterial; var chunksPerAxisX = volumeSize.x / chunkSize.x; var chunksPerAxisY = volumeSize.y / chunkSize.y; var chunksPerAxisZ = volumeSize.z / chunkSize.z; var chunksCount = chunksPerAxisX * chunksPerAxisY * chunksPerAxisZ; var chunkDimensions = new Vector3Int(chunksPerAxisX, chunksPerAxisY, chunksPerAxisZ); var chunks = _chunkStack.Pull(chunksCount); volume.SetChunks(chunks, chunkDimensions, chunkSize); return(default);