Пример #1
0
        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);
     }
 }
Пример #4
0
 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);
     }
 }
Пример #5
0
            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);
 }