internal void Simulate() { Shader.SetGlobalFloat("_WaterHeight", this._Water.transform.position.y); if (base.transform.position.x != this._Position.x || base.transform.position.z != this._Position.z) { this.RenderStaticDepthTexture(); this.MoveSimulation(); this._Position = base.transform.position; } if (this._Buffers[0].Verify(false) || this._Buffers[1].Verify(false)) { this._Buffers[0].Clear(Color.clear, false, true); this._Buffers[1].Clear(Color.clear, false, true); } RipplesShader.SetPrimary(this._Buffers[0], this._RipplesMaterial); RipplesShader.SetSecondary(this._Buffers[1], this._RipplesMaterial); WaterRipplesData.ShaderModes shaderMode = WaterQualitySettings.Instance.Ripples.ShaderMode; if (shaderMode != WaterRipplesData.ShaderModes.ComputeShader) { if (shaderMode == WaterRipplesData.ShaderModes.PixelShader) { this.SimulatePixelShader(); } } else { this.SimulateComputeShader(); } }
private static void SetTextureShaderVariable(string name, Texture value, Material material) { WaterRipplesData.ShaderModes shaderMode = WaterQualitySettings.Instance.Ripples.ShaderMode; if (shaderMode != WaterRipplesData.ShaderModes.ComputeShader) { if (shaderMode == WaterRipplesData.ShaderModes.PixelShader) { material.SetTexture(name, value); } } else { RipplesShader.Shader.SetTexture(RipplesShader.Kernel, name, value); } }