protected override void SetAdditionalSimParams(int lodIdx, PropertyWrapperMaterial simMaterial) { base.SetAdditionalSimParams(lodIdx, simMaterial); simMaterial.SetFloat(sp_FoamFadeRate, Settings._foamFadeRate); simMaterial.SetFloat(sp_WaveFoamStrength, Settings._waveFoamStrength); simMaterial.SetFloat(sp_WaveFoamCoverage, Settings._waveFoamCoverage); simMaterial.SetFloat(sp_ShorelineFoamMaxDepth, Settings._shorelineFoamMaxDepth); simMaterial.SetFloat(sp_ShorelineFoamStrength, Settings._shorelineFoamStrength); // assign animated waves - to slot 1 current frame data OceanRenderer.Instance._lodDataAnimWaves.BindResultData(lodIdx, 1, simMaterial); // assign sea floor depth - to slot 1 current frame data if (OceanRenderer.Instance._lodDataSeaDepths) { OceanRenderer.Instance._lodDataSeaDepths.BindResultData(lodIdx, 1, simMaterial); } else { LodDataMgrSeaFloorDepth.BindNull(1, simMaterial); } // assign flow - to slot 1 current frame data if (OceanRenderer.Instance._lodDataFlow) { OceanRenderer.Instance._lodDataFlow.BindResultData(lodIdx, 1, simMaterial); } else { LodDataMgrFlow.BindNull(1, simMaterial); } }
protected override void SetAdditionalSimParams(int lodIdx, PropertyWrapperMaterial simMaterial) { base.SetAdditionalSimParams(lodIdx, simMaterial); simMaterial.SetFloat(sp_Damping, Settings._damping); simMaterial.SetFloat(sp_Gravity, OceanRenderer.Instance.Gravity); float laplacianKernelAngle = _rotateLaplacian ? Mathf.PI * 2f * Random.value : 0f; simMaterial.SetVector(sp_LaplacianAxisX, new Vector2(Mathf.Cos(laplacianKernelAngle), Mathf.Sin(laplacianKernelAngle))); // assign sea floor depth - to slot 1 current frame data. minor bug here - this depth will actually be from the previous frame, // because the depth is scheduled to render just before the animated waves, and this sim happens before animated waves. if (OceanRenderer.Instance._lodDataSeaDepths) { OceanRenderer.Instance._lodDataSeaDepths.BindResultData(lodIdx, 1, simMaterial); } else { LodDataMgrSeaFloorDepth.BindNull(1, simMaterial); } if (OceanRenderer.Instance._lodDataFlow) { OceanRenderer.Instance._lodDataFlow.BindResultData(lodIdx, 1, simMaterial); } else { LodDataMgrFlow.BindNull(1, simMaterial); } }
public void Draw(CommandBuffer buf, float weight, int isTransition, int lodIdx) { if (Enabled && weight > 0f) { PropertyWrapperMaterial mat = GetMaterial(isTransition); mat.SetFloat(RegisterLodDataInputBase.sp_Weight, weight); buf.DrawRenderer(_rend, mat.material); } }
public void Draw(CommandBuffer buf, float weight, int isTransition) { if (Enabled && weight > 0f) { PropertyWrapperMaterial mat = GetMaterial(isTransition); mat.SetFloat(RegisterLodDataInputBase.sp_Weight, weight); buf.DrawMesh(RasterMesh(), Matrix4x4.identity, mat.material); } }
public void Draw(CommandBuffer buf, float weight, int isTransition, int lodIdx) { HasWaves = false; _gerstner.UpdateBatch(this, _batchIndex); if (HasWaves && weight > 0f) { PropertyWrapperMaterial mat = GetMaterial(isTransition); mat.SetFloat(RegisterLodDataInputBase.sp_Weight, weight); buf.DrawRenderer(_rend, mat.material); } }
public void BindCopySettings(PropertyWrapperMaterial target) { target.SetFloat(sp_HorizDisplace, Settings._horizDisplace); target.SetFloat(sp_DisplaceClamp, Settings._displaceClamp); }