From b00127554d4d4232b2af3e1209ca6434cf074477 Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Fri, 7 Feb 2025 13:53:56 +0100 Subject: [PATCH] add htc vive optimal rendering settings --- .../src/misc/optimize-higher-fps/README.md | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/Handbook/src/misc/optimize-higher-fps/README.md b/Handbook/src/misc/optimize-higher-fps/README.md index d1101d5f..60fad6ef 100644 --- a/Handbook/src/misc/optimize-higher-fps/README.md +++ b/Handbook/src/misc/optimize-higher-fps/README.md @@ -66,6 +66,131 @@ To obtain the current display refresh rate use the Blueprint function `Get Displ If you're looking to squeeze more performance out of your HTC VIVE HMD in standalone mode, consider lowering the target refresh rate from `90hz` to `75hz`. This can help reduce GPU workload and improve overall stability while still maintaining a somewhat smooth experience. +### HTC VIVE Optimal Rendering Settings + +As a last resort consider adding the following rendering settings to your project's `DefaultEngine.ini` under the `/Script/Engine.RendererSettings` section and experiment with them until you obtain your desired results: + +```ini +[/Script/Engine.RendererSettings] +r.Mobile.DisableVertexFog=True +r.Mobile.AllowDitheredLODTransition=False +r.Mobile.AllowSoftwareOcclusion=False +r.Mobile.VirtualTextures=False +r.DiscardUnusedQuality=False +r.AllowOcclusionQueries=True +r.MinScreenRadiusForLights=0.030000 +r.MinScreenRadiusForDepthPrepass=0.030000 +r.MinScreenRadiusForCSMDepth=0.010000 +r.PrecomputedVisibilityWarning=False +r.TextureStreaming=True +Compat.UseDXT5NormalMaps=False +r.VirtualTextures=False +r.VirtualTexturedLightmaps=False +r.VT.TileSize=128 +r.VT.TileBorderSize=4 +r.vt.FeedbackFactor=16 +r.VT.EnableCompressZlib=True +r.VT.EnableCompressCrunch=False +r.ClearCoatNormal=False +r.ReflectionCaptureResolution=128 +r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True +r.ForwardShading=True +r.VertexFoggingForOpaque=True +r.AllowStaticLighting=True +r.NormalMapsForStaticLighting=False +r.GenerateMeshDistanceFields=False +r.DistanceFieldBuild.EightBit=False +r.GenerateLandscapeGIData=False +r.DistanceFieldBuild.Compress=False +r.TessellationAdaptivePixelsPerTriangle=48.000000 +r.SeparateTranslucency=True +r.TranslucentSortPolicy=0 +TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) +r.CustomDepth=1 +r.CustomDepthTemporalAAJitter=True +r.PostProcessing.PropagateAlpha=2 +r.DefaultFeature.Bloom=False +r.DefaultFeature.AmbientOcclusion=False +r.DefaultFeature.AmbientOcclusionStaticFraction=True +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.AutoExposure.Method=0 +r.DefaultFeature.AutoExposure.Bias=1.000000 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.EyeAdaptation.EditorOnly=False +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.LensFlare=False +r.TemporalAA.Upsampling=False +r.SSGI.Enable=False +r.AntiAliasingMethod=3 +r.DefaultFeature.LightUnits=1 +r.DefaultBackBufferPixelFormat=4 +r.Shadow.UnbuiltPreviewInGame=True +r.StencilForLODDither=False +r.EarlyZPass=3 +r.EarlyZPassOnlyMaterialMasking=False +r.DBuffer=True +r.ClearSceneMethod=1 +r.VelocityOutputPass=0 +r.Velocity.EnableVertexDeformation=0 +r.SelectiveBasePassOutputs=False +bDefaultParticleCutouts=False +fx.GPUSimulationTextureSizeX=1024 +fx.GPUSimulationTextureSizeY=1024 +r.AllowGlobalClipPlane=False +r.GBufferFormat=1 +r.MorphTarget.Mode=True +r.GPUCrashDebugging=False +vr.InstancedStereo=True +r.MobileHDR=False +vr.MobileMultiView=True +r.Mobile.UseHWsRGBEncoding=True +vr.RoundRobinOcclusion=False +vr.ODSCapture=False +r.MeshStreaming=False +r.WireframeCullThreshold=5.000000 +r.RayTracing=False +r.RayTracing.UseTextureLod=False +r.SupportStationarySkylight=True +r.SupportLowQualityLightmaps=True +r.SupportPointLightWholeSceneShadows=True +r.SupportAtmosphericFog=True +r.SupportSkyAtmosphere=True +r.SupportSkyAtmosphereAffectsHeightFog=False +r.SkinCache.CompileShaders=False +r.SkinCache.DefaultBehavior=1 +r.SkinCache.SceneMemoryLimitInMB=128.000000 +r.Mobile.EnableStaticAndCSMShadowReceivers=True +r.Mobile.EnableMovableLightCSMShaderCulling=True +r.Mobile.AllowDistanceFieldShadows=True +r.Mobile.AllowMovableDirectionalLights=True +r.MobileNumDynamicPointLights=4 +r.MobileDynamicPointLightsUseStaticBranch=True +r.Mobile.EnableMovableSpotlights=False +r.Mobile.EnableMovableSpotlightsShadow=False +r.GPUSkin.Support16BitBoneIndex=False +r.GPUSkin.Limit2BoneInfluences=False +r.SupportDepthOnlyIndexBuffers=True +r.SupportReversedIndexBuffers=True +r.LightPropagationVolume=False +r.Mobile.AmbientOcclusion=False +r.GPUSkin.UnlimitedBoneInfluences=False +r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 +r.Mobile.PlanarReflectionMode=0 +bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) +bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) +VisualizeCalibrationColorMaterialPath=None +VisualizeCalibrationCustomMaterialPath=None +VisualizeCalibrationGrayscaleMaterialPath=None +r.Mobile.AntiAliasing=3 +r.Mobile.FloatPrecisionMode=2 +r.OpenGL.ForceDXC=0 +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.Shadow.Virtual.Enable=0 +r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False +``` + ## Game User Settings and Engine Scalability Settings Unreal Engine offers predefined graphics quality profiles known as Engine Scalability Settings, which can be easily adjusted to optimize performance. These settings can be modified directly within the Unreal Editor through the Settings menu on the toolbar or dynamically at runtime using code. Importantly, these settings are universal, meaning changes made in the Unreal Editor will apply to the game when run in PIE (Play In Editor) mode, and settings adjusted via code will also affect the editor itself.