示例#1
0
        protected override void Initilize(WaveSpectrumCondition condition, float time)
        {
            if (base.InitMaterial == null)
            {
                throw new InvalidOperationException("GPU buffer has not had its Init material set");
            }
            if (base.InitPass == -1)
            {
                throw new InvalidOperationException("GPU buffer has not had its Init material pass set");
            }
            base.InitMaterial.SetTexture("Ceto_Spectrum01", (!(condition.Spectrum01 != null)) ? Texture2D.blackTexture : condition.Spectrum01);
            base.InitMaterial.SetTexture("Ceto_Spectrum23", (!(condition.Spectrum23 != null)) ? Texture2D.blackTexture : condition.Spectrum23);
            base.InitMaterial.SetTexture("Ceto_WTable", condition.WTable);
            base.InitMaterial.SetVector("Ceto_InverseGridSizes", condition.InverseGridSizes());
            base.InitMaterial.SetVector("Ceto_GridSizes", condition.GridSizes);
            base.InitMaterial.SetVector("Ceto_Offset", this.m_offset);
            base.InitMaterial.SetFloat("Ceto_Time", time);
            this.m_tmpList.Clear();
            int num = this.m_buffers.Length;

            for (int i = 0; i < num; i++)
            {
                if (!this.m_buffers[i].disabled)
                {
                    this.m_tmpList.Add(this.m_buffers[i].data[1]);
                }
            }
            num = this.m_tmpList.Count;
            if (num == 0)
            {
                return;
            }
            if (num == 1)
            {
                Graphics.Blit(null, this.m_tmpList[0], base.InitMaterial, base.InitPass);
            }
            else if (num == 2)
            {
                this.m_tmpBuffer2[0] = this.m_tmpList[0].colorBuffer;
                this.m_tmpBuffer2[1] = this.m_tmpList[1].colorBuffer;
                RTUtility.MultiTargetBlit(this.m_tmpBuffer2, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
            }
            else if (num == 3)
            {
                this.m_tmpBuffer3[0] = this.m_tmpList[0].colorBuffer;
                this.m_tmpBuffer3[1] = this.m_tmpList[1].colorBuffer;
                this.m_tmpBuffer3[2] = this.m_tmpList[2].colorBuffer;
                RTUtility.MultiTargetBlit(this.m_tmpBuffer3, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
            }
            else if (num == 4)
            {
                this.m_tmpBuffer4[0] = this.m_tmpList[0].colorBuffer;
                this.m_tmpBuffer4[1] = this.m_tmpList[1].colorBuffer;
                this.m_tmpBuffer4[2] = this.m_tmpList[2].colorBuffer;
                this.m_tmpBuffer4[3] = this.m_tmpList[3].colorBuffer;
                RTUtility.MultiTargetBlit(this.m_tmpBuffer4, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
            }
        }
示例#2
0
 public InitSpectrumDisplacementsTask(DisplacementBufferCPU buffer, WaveSpectrumCondition condition, float time) : base(true)
 {
     this.Buffer       = buffer;
     this.NumGrids     = condition.Key.NumGrids;
     this.Size         = condition.Key.Size;
     this.SpectrumType = condition.Key.SpectrumType;
     this.TimeValue    = time;
     this.Reset(condition, time);
     this.CreateKTables(condition.InverseGridSizes());
 }
        public InitSpectrumDisplacementsTask(DisplacementBufferCPU buffer, WaveSpectrumCondition condition, float time)
            : base(true)
        {
            Buffer = buffer;
            NumGrids = condition.Key.NumGrids;
            Size = condition.Key.Size;
            SpectrumType = condition.Key.SpectrumType;
            TimeValue = time;

            Reset(condition, time);

            CreateKTables(condition.InverseGridSizes());
        }
        /// <summary>
        /// Initialize the enabled buffers with the current conditions spectrum for this time.
        /// </summary>
        protected override void Initilize(WaveSpectrumCondition condition, float time)
        {
            if (InitMaterial == null)
            {
                throw new InvalidOperationException("GPU buffer has not had its Init material set");
            }

            if (InitPass == -1)
            {
                throw new InvalidOperationException("GPU buffer has not had its Init material pass set");
            }

            InitMaterial.SetTexture("Ceto_Spectrum01", (condition.Spectrum01 != null) ? condition.Spectrum01 : Texture2D.blackTexture);
            InitMaterial.SetTexture("Ceto_Spectrum23", (condition.Spectrum23 != null) ? condition.Spectrum23 : Texture2D.blackTexture);
            InitMaterial.SetTexture("Ceto_WTable", condition.WTable);
            InitMaterial.SetVector("Ceto_InverseGridSizes", condition.InverseGridSizes());
            InitMaterial.SetVector("Ceto_GridSizes", condition.GridSizes);
            InitMaterial.SetVector("Ceto_Offset", m_offset);
            InitMaterial.SetFloat("Ceto_Time", time);

            m_tmpList.Clear();

            int count = m_buffers.Length;

            for (int i = 0; i < count; i++)
            {
                if (!m_buffers[i].disabled)
                {
                    m_tmpList.Add(m_buffers[i].data[1]);
                }
            }

            count = m_tmpList.Count;

            if (count == 0)
            {
                return;
            }
            else if (count == 1)
            {
                Graphics.Blit(null, m_tmpList[0], InitMaterial, InitPass);
            }
            else
            {
                RTUtility.MultiTargetBlit(m_tmpList, InitMaterial, InitPass);
            }
        }
        /// <summary>
        /// Initialize the enabled buffers with the current conditions spectrum for this time.
        /// </summary>
        protected override void Initilize(WaveSpectrumCondition condition, float time)
        {
            if (InitMaterial == null)
                throw new InvalidOperationException("GPU buffer has not had its Init material set");

            if (InitPass == -1)
                throw new InvalidOperationException("GPU buffer has not had its Init material pass set");

            InitMaterial.SetTexture("Ceto_Spectrum01", (condition.Spectrum01 != null) ? condition.Spectrum01 : Texture2D.blackTexture );
            InitMaterial.SetTexture("Ceto_Spectrum23", (condition.Spectrum23 != null) ? condition.Spectrum23 : Texture2D.blackTexture );
            InitMaterial.SetTexture("Ceto_WTable", condition.WTable);
            InitMaterial.SetVector("Ceto_InverseGridSizes", condition.InverseGridSizes());
            InitMaterial.SetVector("Ceto_GridSizes", condition.GridSizes);
            InitMaterial.SetVector("Ceto_Offset", m_offset);
            InitMaterial.SetFloat("Ceto_Time", time);

            m_tmpList.Clear();

            int count = m_buffers.Length;
            for (int i = 0; i < count; i++)
            {
                if(!m_buffers[i].disabled)
                    m_tmpList.Add(m_buffers[i].data[1]);
            }

            count = m_tmpList.Count;

            if (count == 0)
            {
                return;
            }
            else if(count == 1)
            {
                Graphics.Blit(null, m_tmpList[0], InitMaterial, InitPass);
            }
            else
            {
                RTUtility.MultiTargetBlit(m_tmpList, InitMaterial, InitPass);
            }
        }
 protected override void Initilize(WaveSpectrumCondition condition, float time)
 {
     if (base.InitMaterial == null)
     {
         throw new InvalidOperationException("GPU buffer has not had its Init material set");
     }
     if (base.InitPass == -1)
     {
         throw new InvalidOperationException("GPU buffer has not had its Init material pass set");
     }
     base.InitMaterial.SetTexture("Ceto_Spectrum01", (!(condition.Spectrum01 != null)) ? Texture2D.blackTexture : condition.Spectrum01);
     base.InitMaterial.SetTexture("Ceto_Spectrum23", (!(condition.Spectrum23 != null)) ? Texture2D.blackTexture : condition.Spectrum23);
     base.InitMaterial.SetTexture("Ceto_WTable", condition.WTable);
     base.InitMaterial.SetVector("Ceto_InverseGridSizes", condition.InverseGridSizes());
     base.InitMaterial.SetVector("Ceto_GridSizes", condition.GridSizes);
     base.InitMaterial.SetVector("Ceto_Offset", this.m_offset);
     base.InitMaterial.SetFloat("Ceto_Time", time);
     this.m_tmpList.Clear();
     int num = this.m_buffers.Length;
     for (int i = 0; i < num; i++)
     {
         if (!this.m_buffers[i].disabled)
         {
             this.m_tmpList.Add(this.m_buffers[i].data[1]);
         }
     }
     num = this.m_tmpList.Count;
     if (num == 0)
     {
         return;
     }
     if (num == 1)
     {
         Graphics.Blit(null, this.m_tmpList[0], base.InitMaterial, base.InitPass);
     }
     else if (num == 2)
     {
         this.m_tmpBuffer2[0] = this.m_tmpList[0].colorBuffer;
         this.m_tmpBuffer2[1] = this.m_tmpList[1].colorBuffer;
         RTUtility.MultiTargetBlit(this.m_tmpBuffer2, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
     }
     else if (num == 3)
     {
         this.m_tmpBuffer3[0] = this.m_tmpList[0].colorBuffer;
         this.m_tmpBuffer3[1] = this.m_tmpList[1].colorBuffer;
         this.m_tmpBuffer3[2] = this.m_tmpList[2].colorBuffer;
         RTUtility.MultiTargetBlit(this.m_tmpBuffer3, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
     }
     else if (num == 4)
     {
         this.m_tmpBuffer4[0] = this.m_tmpList[0].colorBuffer;
         this.m_tmpBuffer4[1] = this.m_tmpList[1].colorBuffer;
         this.m_tmpBuffer4[2] = this.m_tmpList[2].colorBuffer;
         this.m_tmpBuffer4[3] = this.m_tmpList[3].colorBuffer;
         RTUtility.MultiTargetBlit(this.m_tmpBuffer4, this.m_tmpList[0].depthBuffer, base.InitMaterial, base.InitPass);
     }
 }