public void ResetToDefaults() { name = ""; maxSpectrumResolution = 256; allowHighPrecisionTextures = true; tileSizeScale = 1.0f; wavesMode = WaterWavesMode.AllowAll; allowSpray = true; foamQuality = 1.0f; allowVolumetricLighting = true; maxTesselationFactor = 1.0f; maxVertexCount = 500000; maxTesselatedVertexCount = 120000; allowAlphaBlending = true; allowHighQualityReflections = false; }
private WindWavesRenderMode BuildWindWavesVariant(ShaderVariant variant, WaterQualityLevel qualityLevel) { WaterWavesMode wavesMode = qualityLevel.WavesMode; WindWavesRenderMode windWavesRenderMode; if (this._WindWavesMode == WindWavesRenderMode.Disabled || wavesMode == WaterWavesMode.DisallowAll) { windWavesRenderMode = WindWavesRenderMode.Disabled; } else if (this._WindWavesMode == WindWavesRenderMode.FullFFT && wavesMode == WaterWavesMode.AllowAll) { windWavesRenderMode = WindWavesRenderMode.FullFFT; } else if (this._WindWavesMode <= WindWavesRenderMode.GerstnerAndFFTNormals && wavesMode <= WaterWavesMode.AllowNormalFFT) { windWavesRenderMode = WindWavesRenderMode.GerstnerAndFFTNormals; } else { windWavesRenderMode = WindWavesRenderMode.Gerstner; } if (windWavesRenderMode != WindWavesRenderMode.FullFFT) { if (windWavesRenderMode != WindWavesRenderMode.GerstnerAndFFTNormals) { if (windWavesRenderMode == WindWavesRenderMode.Gerstner) { variant.SetUnityKeyword("_WAVES_GERSTNER", true); } } else { variant.SetWaterKeyword("_WAVES_FFT_NORMAL", true); variant.SetUnityKeyword("_WAVES_GERSTNER", true); } } else { variant.SetUnityKeyword("_WAVES_FFT", true); } if (this._DynamicSmoothnessMode == DynamicSmoothnessMode.Physical) { variant.SetWaterKeyword("_INCLUDE_SLOPE_VARIANCE", true); } return(windWavesRenderMode); }
internal void ResolveFinalSettings(WaterQualityLevel quality) { this.CreateObjects(); WaterWavesMode wavesMode = quality.WavesMode; if (wavesMode == WaterWavesMode.DisallowAll) { this._WaterWavesFFT.Disable(); this._WaterWavesGerstner.Disable(); return; } bool flag = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBFloat) || SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf); int num = Mathf.Min(new int[] { this._Data.Resolution, quality.MaxSpectrumResolution, SystemInfo.maxTextureSize }); bool flag2 = this._Data.HighPrecision && quality.AllowHighPrecisionTextures && SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBFloat); WindWavesRenderMode windWavesMode = this._Water.ShaderSet.WindWavesMode; if (windWavesMode == WindWavesRenderMode.FullFFT && wavesMode == WaterWavesMode.AllowAll && flag) { this._FinalRenderMode = WaveSpectrumRenderMode.FullFFT; } else if (windWavesMode <= WindWavesRenderMode.GerstnerAndFFTNormals && wavesMode <= WaterWavesMode.AllowNormalFFT && flag) { this._FinalRenderMode = WaveSpectrumRenderMode.GerstnerAndFFTNormals; } else { this._FinalRenderMode = WaveSpectrumRenderMode.Gerstner; } if (this._FinalResolution != num) { lock (this) { this._FinalResolution = num; this._FinalHighPrecision = flag2; if (this._SpectrumResolver != null) { this._SpectrumResolver.OnMapsFormatChanged(true); } if (this.ResolutionChanged != null) { this.ResolutionChanged.Invoke(this); } } } else if (this._FinalHighPrecision != flag2) { lock (this) { this._FinalHighPrecision = flag2; if (this._SpectrumResolver != null) { this._SpectrumResolver.OnMapsFormatChanged(false); } } } WaveSpectrumRenderMode finalRenderMode = this._FinalRenderMode; if (finalRenderMode != WaveSpectrumRenderMode.FullFFT) { if (finalRenderMode != WaveSpectrumRenderMode.GerstnerAndFFTNormals) { if (finalRenderMode == WaveSpectrumRenderMode.Gerstner) { this._WaterWavesFFT.Disable(); this._WaterWavesGerstner.Enable(); } } else { this._WaterWavesFFT.RenderedMaps = WavesRendererFFT.MapType.Normal; this._WaterWavesFFT.Enable(); this._WaterWavesGerstner.Enable(); } } else { this._WaterWavesFFT.RenderedMaps = (WavesRendererFFT.MapType.Displacement | WavesRendererFFT.MapType.Normal); this._WaterWavesFFT.Enable(); this._WaterWavesGerstner.Disable(); } }