void UpdateDisplacementMap(float t, OceanParameter parameter)
    {
        if (h0Buffer == null || omegaBuffer == null || HKBuffer == null || DxBuffer == null || DyBuffer == null)
        {
            return;
        }

        // H(0) -> H(t), D(x,t), D(y,t)
        UpdateSpectrumShader.SetBuffer(0, "H0", h0Buffer);
        UpdateSpectrumShader.SetBuffer(0, "Omega", omegaBuffer);
        UpdateSpectrumShader.SetBuffer(0, "HK", HKBuffer);
        UpdateSpectrumShader.SetBuffer(0, "Dx", DxBuffer);
        UpdateSpectrumShader.SetBuffer(0, "Dy", DyBuffer);
        UpdateSpectrumShader.SetInt("Dimension", parameter.displaceMap_dimension);
        UpdateSpectrumShader.SetFloat("curTime", t);
        int GroupNum = parameter.displaceMap_dimension / OceanConst.THREAD_GROUP;

        UpdateSpectrumShader.Dispatch(0, GroupNum, GroupNum, 1);

        mFFT.EvaluteFFT(HKBuffer, ref HtBuffer);
        mFFT.EvaluteFFT(DxBuffer, ref DxtBuffer);
        mFFT.EvaluteFFT(DyBuffer, ref DytBuffer);
    }