Пример #1
0
        private void CreateButterflyTexture()
        {
            butterfly            = new Texture2D(resolution << 1, numButterfliesPow2, highPrecision ? TextureFormat.RGBAFloat : TextureFormat.RGBAHalf, false, true);
            butterfly.hideFlags  = HideFlags.DontSave;
            butterfly.filterMode = FilterMode.Point;
            butterfly.wrapMode   = TextureWrapMode.Clamp;

            int[][]     indices;
            Vector2[][] weights;
            ButterflyFFTUtility.ComputeButterfly(resolution, numButterflies, out indices, out weights);
            FillButterflyTexture(butterfly, indices, weights);

            butterfly.Apply();
        }
Пример #2
0
 private void CreateButterflyTexture()
 {
     this._Butterfly = new Texture2D(this._Resolution << 1, this._NumButterfliesPow2, (!this._HighPrecision) ? TextureFormat.RGBAHalf : TextureFormat.RGBAFloat, false, true)
     {
         hideFlags  = HideFlags.DontSave,
         filterMode = FilterMode.Point,
         wrapMode   = TextureWrapMode.Clamp
     };
     int[][]     indices;
     Vector2[][] weights;
     ButterflyFFTUtility.ComputeButterfly(this._Resolution, this._NumButterflies, out indices, out weights);
     this.FillButterflyTexture(this._Butterfly, indices, weights);
     this._Butterfly.Apply();
 }
Пример #3
0
 public FFTBuffers(int resolution)
 {
     this._Resolution    = resolution;
     this.Timed          = new float[resolution * resolution * 12];
     this.PingPongA      = new float[resolution * 12];
     this.PingPongB      = new float[resolution * 12];
     this.NumButterflies = (int)(Mathf.Log((float)resolution) / Mathf.Log(2f));
     ButterflyFFTUtility.ComputeButterfly(resolution, this.NumButterflies, out this.Indices, out this.Weights);
     for (int i = 0; i < this.Indices.Length; i++)
     {
         int[] array = this.Indices[i];
         for (int j = 0; j < array.Length; j++)
         {
             array[j] *= 12;
         }
     }
 }
Пример #4
0
            public FFTBuffers(int resolution)
            {
                this.resolution = resolution;
                timed           = new float[resolution * resolution * 12];
                pingPongA       = new float[resolution * 12];
                pingPongB       = new float[resolution * 12];
                numButterflies  = (int)(Mathf.Log((float)resolution) / Mathf.Log(2.0f));

                ButterflyFFTUtility.ComputeButterfly(resolution, numButterflies, out indices, out weights);

                for (int ii = 0; ii < indices.Length; ++ii)
                {
                    var localIndices = indices[ii];

                    for (int i = 0; i < localIndices.Length; ++i)
                    {
                        localIndices[i] *= 12;
                    }
                }
            }