Пример #1
0
 private void RenderTotalOmnidirectionalSpectrum()
 {
     this._AnimationMaterial.SetFloat("_Gravity", this._Water.Gravity);
     this._AnimationMaterial.SetVector("_TargetResolution", new Vector4((float)this._WindWaves.FinalResolution, (float)this._WindWaves.FinalResolution, 0f, 0f));
     Water.WeightedProfile[] profiles = this._Water.ProfilesManager.Profiles;
     if (profiles.Length > 1)
     {
         RenderTexture totalOmnidirectionalSpectrum = this.GetTotalOmnidirectionalSpectrum();
         totalOmnidirectionalSpectrum.Clear(Color.black, false, true);
         foreach (Water.WeightedProfile weightedProfile in profiles)
         {
             if (weightedProfile.Weight > 0.0001f)
             {
                 WaterWavesSpectrum     spectrum = weightedProfile.Profile.Spectrum;
                 WaterWavesSpectrumData spectrumData;
                 if (!this._SpectraDataCache.TryGetValue(spectrum, out spectrumData))
                 {
                     spectrumData = base.GetSpectrumData(spectrum);
                 }
                 this._AnimationMaterial.SetFloat("_Weight", spectrumData.Weight);
                 Graphics.Blit(spectrumData.Texture, totalOmnidirectionalSpectrum, this._AnimationMaterial, 4);
             }
         }
         this._OmnidirectionalSpectrum = totalOmnidirectionalSpectrum;
     }
     else if (profiles.Length != 0)
     {
         WaterWavesSpectrum     spectrum2 = profiles[0].Profile.Spectrum;
         WaterWavesSpectrumData spectrumData2;
         if (!this._SpectraDataCache.TryGetValue(spectrum2, out spectrumData2))
         {
             spectrumData2 = base.GetSpectrumData(spectrum2);
         }
         spectrumData2.Weight          = 1f;
         this._OmnidirectionalSpectrum = spectrumData2.Texture;
     }
     this._Water.Renderer.PropertyBlock.SetFloat("_MaxDisplacement", base.MaxHorizontalDisplacement);
 }
Пример #2
0
 public WaterWavesSpectrumData(Water water, WindWaves windWaves, WaterWavesSpectrum spectrum) : base(water, windWaves, spectrum.TileSize, spectrum.Gravity)
 {
     this._Spectrum = spectrum;
 }