local SettingImpl_HD = {} local DeviceLODSetting = require "Modules/Setting/DeviceLODSetting" local LodLevelCustom, LodLevelHigh, LodLevelMid, LodLevelLow = -1, 2, 1, 0 --强制高性能设备使用的画质参数 local QualitySettingHD = { --这些参数不能手动调节,对于高性能设备直接锁定其数值 ["KEY_SETTING_Water"] = 1, ["KEY_SETTING_Texture"] = 2, ["KEY_SETTING_LodGroupBias"] = 2, ["KEY_SETTING_ColorGrading"] = 1, ["KEY_SETTING_LightShaft"] = 1, --下面这些参数因为可以手动调整,所以不能锁定 --["KEY_SETTING_ShaderQuality"] = 2, --["KEY_SETTING_ShadowQuality"] = 2, --["KEY_SETTING_ParticleQuality"] = 2, --["KEY_SETTING_Bloom"] = 1, --["KEY_SETTING_ScreenResolution"] = 2, --["KEY_SETTING_DOF"] = 0, --["KEY_SETTING_AA"] = 1, } function SettingImpl_HD.GetSettingValue(settingKeyEnum, settingLevel, deviceLevel) local settingValue if QualitySettingHD[settingKeyEnum] then settingValue = QualitySettingHD[settingKeyEnum] end return settingValue end function SettingImpl_HD.ExecuteSetting(settingEnum, settingLevel, deviceLevel, forceValue) if QualitySettingHD[settingEnum] then local localForceValue = QualitySettingHD[settingEnum] local func = DeviceLODSetting.SettingAPI[settingEnum] func(localForceValue) return true end return false end function SettingImpl_HD.ApplyPsPreset(self0, other0, self1, other1, self2, other2) --提高自身特效等级 local MIN_SELF_PS_LEVEL_LOD1 = 1 self1 = math.max(MIN_SELF_PS_LEVEL_LOD1, self1) local MIN_SELF_PS_LEVEL_LOD2 = 2 self2 = math.max(MIN_SELF_PS_LEVEL_LOD2, self2) AuxUtil.SetPresetLOD(self0, other0, self1, other1, self2, other2) end function SettingImpl_HD.ApplyPsCapacity(capNear, capMedium, capFar) --增加特效容量 local PS_CAPACITY_BIAS_NEAR = 60 local PS_CAPACITY_BIAS_MED = 40 local PS_CAPACITY_BIAS_FAR = 20 AuxUtil.SetEffectCullingCapacity( PS_CAPACITY_BIAS_NEAR + capNear, PS_CAPACITY_BIAS_MED + capMedium, PS_CAPACITY_BIAS_FAR + capFar) end function SettingImpl_HD.ApplyVisualCullingCapacity(cullingCount) --增加角色剔除容量 local VIS_CULL_COUNT_BIAS = 500 AuxUtil.SetVisualCullingCapacity(VIS_CULL_COUNT_BIAS + cullingCount) end function SettingImpl_HD.ApplyVisualCullingDistance(visibleDistanceNear, visibleDistanceFar, visibleDistanceMax) --增加剔除距离 local VIS_CULL_DIST_BIAS_NEAR = 20 local VIS_CULL_DIST_BIAS_FAR = 40 local VIS_CULL_DIST_BIAS_MAX = 60 AuxUtil.SetVisualCullingDistance( VIS_CULL_DIST_BIAS_NEAR + visibleDistanceNear, VIS_CULL_DIST_BIAS_FAR + visibleDistanceFar, VIS_CULL_DIST_BIAS_MAX + visibleDistanceMax) end return SettingImpl_HD