Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        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);