Beispiel #1
0
    void UpdateReslutUI(ImageQuality quality, ReslutImageFlags flag = ReslutImageFlags.None)
    {
        //PerformanceCheckUI_Reslut uiInstance = PerformanceCheckManager.Instance.flowShareData.ui_Reslut;
        //uiInstance.gameObject.SetActive(true);


        if (flag == ReslutImageFlags.OpenOhtersImageEffects)
        {
            //uiInstance.tips.text = "您的检测结果为<color=red>" + PerformanceCheckManager.GetImageQualityDesc(quality) + ",</color>由于您的计算机性能较高,系统为您开启了一些额外的渲染效果," +
            //           "您可以在<color=red>登入游戏后按[ESC]->视频设置</color>中修改您的选项。正在进入游戏.....";

            ImageSetting.Clear();
            EndPerformanceCheck();
        }
        else if (flag == ReslutImageFlags.NotSupportFullGoodImageEffect)
        {
            UpdateReslut_NotSupportGoodImangeEffect(quality);
        }
        else if (flag == ReslutImageFlags.NotSupportFullBestImageEffect)
        {
            UpdateReslut_NotSupportBestImangeEffect(quality);
        }
        else if (flag == ReslutImageFlags.NotSupportFullHighImageEffect)
        {
            UpdateReslut_NotSupportHighImangeEffect(quality);
        }
        else
        {
            //uiInstance.tips.text = "您的检测结果为<color=red>" + PerformanceCheckManager.GetImageQualityDesc(quality) + ",</color>" +
            //           "您可以在<color=red>登入游戏后按[ESC]->视频设置</color>中修改您的选项。正在进入游戏.....";

            ImageSetting.Clear();
            EndPerformanceCheck();
        }
    }
Beispiel #2
0
    void FihishWithNormal()
    {
        //看看几何等级
        PerformanceCheckManager.PerformanceCheckReslut reslut = PerformanceCheckManager.Instance.ReslutData;
        if (reslut.GeometricRenderLevel <= 1 || reslut.ImageEffectRenderLevel <= 1)//最低级
        {
            ImageSetting.SetImageQuality(ImageQuality.Fastest);
            ImageSetting.ResetOthersSettings();
            UpdateReslutUI(ImageQuality.Fastest);
            return;
        }

        //中级情况1,所有都通过了
        if (reslut.GeometricRenderLevel == 2 && reslut.ImageEffectRenderLevel == 2)
        {
            ImageSetting.SetImageQuality(ImageQuality.Good);
            ImageSetting.ResetOthersSettings();
            UpdateReslutUI(ImageQuality.Good);
            return;
        }

        //中级情况2,通过了几何,没有通过后处理测试
        if (reslut.GeometricRenderLevel == 2)
        {
            ImageSetting.SetImageQuality(ImageQuality.Good);
            ImageSetting.ResetOthersSettings();
            flag = ReslutImageFlags.NotSupportFullGoodImageEffect;
            UpdateReslutUI(ImageQuality.Good, flag);
            return;
        }

        //高级情况1,所有都通过了
        if (reslut.GeometricRenderLevel == 3 && reslut.ImageEffectRenderLevel == 3)
        {
            ImageSetting.SetImageQuality(ImageQuality.High);
            ImageSetting.ResetOthersSettings();
            UpdateReslutUI(ImageQuality.High);
            return;
        }

        //高级情况2,通过了几何,没有通过后处理测试
        if (reslut.GeometricRenderLevel == 3)
        {
            ImageSetting.SetImageQuality(ImageQuality.High);
            ImageSetting.ResetOthersSettings();
            flag = ReslutImageFlags.NotSupportFullHighImageEffect;
            UpdateReslutUI(ImageQuality.High, flag);
            return;
        }

        //最高级情况1,所有测试都通过了
        if (reslut.GeometricRenderLevel == 4 && reslut.ImageEffectRenderLevel == 4)
        {
            //再看一下帧数,帧数超过70fps,可以把抗锯齿和Bloom开启来
            //如果真是超过80fps,可以把抗锯齿,bloom和ao开起来
            ImageSetting.SetImageQuality(ImageQuality.Best);
            ImageSetting.ResetOthersSettings();
            ImageSetting.GetData().AdvanceImageEffectEnabled = 1;
            if (PerformanceCheck_FPS.currFPS > PerformanceCheckManager.PassLevleFps * 1.3f)
            {
                ImageSetting.GetData().FXAAEnabled           = 1;
                ImageSetting.GetData().BloomAndFlaresEnabled = 1;
                flag = ReslutImageFlags.OpenOhtersImageEffects;

                if (PerformanceCheck_FPS.currFPS > PerformanceCheckManager.PassLevleFps * 1.4f)
                {
                    ImageSetting.GetData().SSAOEnabled = 1;
                }
            }


            UpdateReslutUI(ImageQuality.Best, flag);
            return;
        }

        //最高级情况2,只通过了几何图形测试,没有通过后处理,这种情况是显卡的能力不足,给予两种选择
        //1。降低分辨率
        //2.关闭后处理
        if (reslut.GeometricRenderLevel == 4)
        {
            ImageSetting.SetImageQuality(ImageQuality.Best);
            ImageSetting.ResetOthersSettings();

            flag = ReslutImageFlags.NotSupportFullBestImageEffect;
            UpdateReslutUI(ImageQuality.Best, flag);
            return;
        }
    }