From 92ba6df210c313cbd34775dc60c183f6fb08d14e Mon Sep 17 00:00:00 2001 From: Daniele Benegiamo Date: Sat, 26 Nov 2022 15:12:12 +0100 Subject: [PATCH] [r158] Update for UE5.1. - Disabled SteamVR and OculusVR plugins that are deprecated in UE5.1, OpenXR is used instead. - Updated engine settings, accordingly to the VR Template of UE5.1. --- README.md | 7 + SPPDemo/Config/DefaultEngine.ini | 279 ++++++++++++++++------ SPPDemo/Config/DefaultInput.ini | 8 +- SPPDemo/Config/Mac/MacEngine.ini | 2 + SPPDemo/Config/steamvr_ue_editor_app.json | 6 +- SPPDemo/SPPDemo.uproject | 26 +- 6 files changed, 223 insertions(+), 105 deletions(-) create mode 100644 SPPDemo/Config/Mac/MacEngine.ini diff --git a/README.md b/README.md index 005164f..76ba062 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,13 @@ It showcases how to use the two main features of the plugin: Note: _Portrait_ mode on iOS is temporarily disabled due [issue UE-65091](https://issues.unrealengine.com/issue/UE-65091) (it should be fixed on UE4.22). +### VR mode + +Accordingly to the latest Unreal Engine developments, the demo project uses the Unreal Engine *OpenXR subsystem* to support VR mode on desktop platforms. +Please check the [OpenXR prerequisites](https://docs.unrealengine.com/5.1/en-US/developing-for-head-mounted-experiences-with-openxr-in-unreal-engine/) and [how to install the OpenXR runtime](https://docs.unrealengine.com/5.1/en-US/openxr-prerequisites-in-unreal-engine/) to properly run the demo on your system. + +Note that the [Oculus VR and SteamVR plugins are deprecated](https://docs.unrealengine.com/5.1/en-US/unreal-engine-5.1-release-notes/#deprecatedoculusvrandsteamvrplugins) since UE5.1. + ### Third Party contents The demo makes use of the following materials, refer to their licenses for further reuse: diff --git a/SPPDemo/Config/DefaultEngine.ini b/SPPDemo/Config/DefaultEngine.ini index 9cad54f..2eff65a 100644 --- a/SPPDemo/Config/DefaultEngine.ini +++ b/SPPDemo/Config/DefaultEngine.ini @@ -1,13 +1,10 @@ -[URL] + [/Script/Engine.RendererSettings] -r.MobileHDR=False r.Mobile.DisableVertexFog=True -r.Shadow.CSM.MaxMobileCascades=2 -r.MobileMSAA=1 -r.Mobile.UseLegacyShadingModel=False r.Mobile.AllowDitheredLODTransition=False r.Mobile.AllowSoftwareOcclusion=False +r.Mobile.VirtualTextures=False r.DiscardUnusedQuality=False r.AllowOcclusionQueries=True r.MinScreenRadiusForLights=0.030000 @@ -16,6 +13,13 @@ 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 @@ -23,7 +27,7 @@ r.ForwardShading=True r.VertexFoggingForOpaque=True r.AllowStaticLighting=True r.NormalMapsForStaticLighting=False -r.GenerateMeshDistanceFields=False +r.GenerateMeshDistanceFields=True r.DistanceFieldBuild.EightBit=False r.GenerateLandscapeGIData=False r.DistanceFieldBuild.Compress=False @@ -34,28 +38,30 @@ TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) r.CustomDepth=1 r.CustomDepthTemporalAAJitter=True r.PostProcessing.PropagateAlpha=0 -r.DOF.Algorithm=True r.DefaultFeature.Bloom=False r.DefaultFeature.AmbientOcclusion=False r.DefaultFeature.AmbientOcclusionStaticFraction=True r.DefaultFeature.AutoExposure=False r.DefaultFeature.AutoExposure.Method=0 -r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=False -r.UsePreExposure=False +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.DefaultFeature.AntiAliasing=2 +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.EarlyZPassMovable=True r.EarlyZPassOnlyMaterialMasking=False r.DBuffer=True r.ClearSceneMethod=1 r.BasePassOutputsVelocity=False +r.VertexDeformationOutputsVelocity=False r.SelectiveBasePassOutputs=False bDefaultParticleCutouts=False fx.GPUSimulationTextureSizeX=1024 @@ -64,30 +70,60 @@ r.AllowGlobalClipPlane=False r.GBufferFormat=1 r.MorphTarget.Mode=True r.GPUCrashDebugging=False -vr.InstancedStereo=False -vr.MultiView=False -vr.MobileMultiView=False -vr.MobileMultiView.Direct=False -vr.MonoscopicFarField=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.SkinCache.SceneMemoryLimitInMB=128.000000 +r.Mobile.EnableMovableSpotlights=False +r.Mobile.EnableMovableSpotlightsShadow=False +r.GPUSkin.Support16BitBoneIndex=False r.GPUSkin.Limit2BoneInfluences=False r.SupportDepthOnlyIndexBuffers=True r.SupportReversedIndexBuffers=True -r.SupportMaterialLayers=False +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.DynamicGlobalIlluminationMethod=1 + +r.ReflectionMethod=1 + +r.Shadow.Virtual.Enable=1 + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Mobile +AppliedTargetedHardwareClass=Mobile +DefaultGraphicsPerformance=Scalable +AppliedDefaultGraphicsPerformance=Scalable [/Script/EngineSettings.GameMapsSettings] EditorStartupMap=/Game/Maps/Main.Main @@ -107,71 +143,164 @@ GlobalDefaultServerGameMode=None [/Script/Slate.SlateSettings] bExplicitCanvasChildZOrder=True +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +MinimumOSVersion=MSOS_Vista +bTarget32Bit=False +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin=Resonance Audio +ReverbPlugin=Resonance Audio +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +bUseAudioStreamCaching=False +CacheSizeKB=0 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=0.000000 +HighSampleRate=0.000000 +MedSampleRate=0.000000 +LowSampleRate=0.000000 +MinSampleRate=0.000000 +CompressionQualityModifier=0.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + +[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] +PackageName=com.epicgames.[PROJECT] +StoreVersion=1 +StoreVersionOffsetArmV7=0 +StoreVersionOffsetArm64=0 +StoreVersionOffsetX8664=0 +ApplicationDisplayName= +VersionDisplayName=1.0 +MinSDKVersion=23 +TargetSDKVersion=25 +InstallLocation=InternalOnly +bEnableGradle=True +bEnableLint=False +bPackageDataInsideApk=True +bCreateAllPlatformsInstall=False +bDisableVerifyOBBOnStartUp=False +bForceSmallOBBFiles=False +bAllowLargeOBBFiles=False +bAllowPatchOBBFile=False +bAllowOverflowOBBFiles=False +bUseExternalFilesDir=False +bPublicLogFiles=True +Orientation=SensorLandscape +MaxAspectRatio=2.100000 +bUseDisplayCutout=False +bRestoreNotificationsOnReboot=False +bFullScreen=True +bEnableNewKeyboard=True +DepthBufferPreference=Default +bValidateTextureFormats=True +bEnableBundle=False +bEnableUniversalAPK=True +bBundleABISplit=True +bBundleLanguageSplit=True +bBundleDensitySplit=True +ExtraApplicationSettings= +ExtraActivitySettings= +bAndroidVoiceEnabled=False ++PackageForOculusMobile=Quest2 ++PackageForOculusMobile=Quest +bRemoveOSIG=False ++GoogleVRCaps=Daydream33 +bGoogleVRSustainedPerformance=False +KeyStore=UE.keystore +KeyAlias=DistroKey +KeyStorePassword=codesigner +KeyPassword= +bBuildForArm64=True +bBuildForX8664=False +bBuildForES31=False +bSupportsVulkan=True +bSupportsVulkanSM5=False +ClangSanitizer=None +bAndroidOpenGLSupportsBackbufferSampling=False +bDetectVulkanByDefault=True +bBuildWithHiddenSymbolVisibility=False +bSaveSymbols=False +bForceLDLinker=False +bEnableGooglePlaySupport=False +bUseGetAccounts=False +GamesAppID= +bEnableSnapshots=False +bSupportAdMob=True +AdMobAdUnitID= +GooglePlayLicenseKey= +GCMClientSenderID= +bShowLaunchImage=True +bAllowIMU=True +bAllowControllers=True +bBlockAndroidKeysOnControllers=False +bControllersBlockDeviceFeedback=False +AndroidAudio=Default +AudioSampleRate=44100 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=4 +AudioMaxChannels=0 +AudioNumSourceWorkers=0 +SpatializationPlugin=Resonance Audio +ReverbPlugin=Resonance Audio +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +bUseAudioStreamCaching=False +CacheSizeKB=0 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +SoundCueCookQualityIndex=-1 +MaxSampleRate=0.000000 +HighSampleRate=0.000000 +MedSampleRate=0.000000 +LowSampleRate=0.000000 +MinSampleRate=0.000000 +CompressionQualityModifier=0.000000 +AutoStreamingThreshold=0.000000 +AndroidGraphicsDebugger=None +MaliGraphicsDebuggerPath=(Path="") +bEnableMaliPerfCounters=False +bMultiTargetFormat_ETC2=True +bMultiTargetFormat_DXT=True +bMultiTargetFormat_ASTC=True +TextureFormatPriority_ETC2=0.200000 +TextureFormatPriority_DXT=0.600000 +TextureFormatPriority_ASTC=0.900000 +SDKAPILevelOverride= +NDKAPILevelOverride= +bStreamLandscapeMeshLODs=False + [/Script/IOSRuntimeSettings.IOSRuntimeSettings] bSupportsPortraitOrientation=False bSupportsUpsideDownOrientation=False bSupportsLandscapeLeftOrientation=True PreferredLandscapeOrientation=LandscapeLeft bEnableAdvertisingIdentifier=False +SpatializationPlugin=Resonance Audio +bAutomaticSigning=True +IOSTeamID=BCZ83H7C2E -[/Script/HardwareTargeting.HardwareTargetingSettings] -TargetedHardwareClass=Mobile -AppliedTargetedHardwareClass=Mobile -DefaultGraphicsPerformance=Scalable -AppliedDefaultGraphicsPerformance=Scalable +[/Script/LuminRuntimeSettings.LuminRuntimeSettings] +SpatializationPlugin=Built-in Spatialization -[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] -Orientation=Sensor -MinSDKVersion=14 -TargetSDKVersion=14 -bPackageDataInsideApk=True -PackageName=com.unamedia.spp - -[/Script/Engine.PhysicsSettings] -DefaultGravityZ=-980.000000 -DefaultTerminalVelocity=4000.000000 -DefaultFluidFriction=0.300000 -SimulateScratchMemorySize=262144 -RagdollAggregateThreshold=4 -TriangleMeshTriangleMinAreaThreshold=5.000000 -bEnableShapeSharing=False -bEnablePCM=True -bEnableStabilization=False -bWarnMissingLocks=True -bEnable2DPhysics=False -PhysicErrorCorrection=(PingExtrapolation=0.100000,PingLimit=100.000000,ErrorPerLinearDifference=1.000000,ErrorPerAngularDifference=1.000000,MaxRestoredStateError=1.000000,MaxLinearHardSnapDistance=400.000000,PositionLerp=0.000000,AngleLerp=0.400000,LinearVelocityCoefficient=100.000000,AngularVelocityCoefficient=10.000000,ErrorAccumulationSeconds=0.500000,ErrorAccumulationDistanceSq=15.000000,ErrorAccumulationSimilarity=100.000000) -LockedAxis=Invalid -DefaultDegreesOfFreedom=Full3D -BounceThresholdVelocity=200.000000 -FrictionCombineMode=Average -RestitutionCombineMode=Average -MaxAngularVelocity=3600.000000 -MaxDepenetrationVelocity=0.000000 -ContactOffsetMultiplier=0.020000 -MinContactOffset=2.000000 -MaxContactOffset=8.000000 -bSimulateSkeletalMeshOnDedicatedServer=True -DefaultShapeComplexity=CTF_UseSimpleAndComplex -bDefaultHasComplexCollision=True -bSuppressFaceRemapTable=False -bSupportUVFromHitResults=False -bDisableActiveActors=False -bDisableKinematicStaticPairs=False -bDisableKinematicKinematicPairs=False -bDisableCCD=False -bEnableEnhancedDeterminism=False -AnimPhysicsMinDeltaTime=0.000000 -bSimulateAnimPhysicsAfterReset=False -MaxPhysicsDeltaTime=0.033333 -bSubstepping=False -bSubsteppingAsync=False -MaxSubstepDeltaTime=0.016667 -MaxSubsteps=6 -SyncSceneSmoothingFactor=0.000000 -InitialAverageFrameRate=0.016667 -PhysXTreeRebuildRate=10 -DefaultBroadphaseSettings=(bUseMBPOnClient=False,bUseMBPOnServer=False,bUseMBPOuterBounds=False,MBPBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPOuterBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPNumSubdivs=2) -ChaosSettings=(DefaultThreadingModel=DedicatedThread,DedicatedThreadTickMode=VariableCappedWithTarget,DedicatedThreadBufferMode=Double) +[/Script/MacTargetPlatform.MacTargetSettings] +SpatializationPlugin=Resonance Audio +ReverbPlugin=Resonance Audio + +[/Script/OculusHMD.OculusHMDRuntimeSettings] +HandTrackingSupport=ControllersAndHands +FFRLevel=FFR_Medium +XrApi=NativeOpenXR [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] bEnablePlugin=True diff --git a/SPPDemo/Config/DefaultInput.ini b/SPPDemo/Config/DefaultInput.ini index cc8b0e5..5c0bfde 100644 --- a/SPPDemo/Config/DefaultInput.ini +++ b/SPPDemo/Config/DefaultInput.ini @@ -88,6 +88,10 @@ bEnableMouseSmoothing=True bEnableFOVScaling=True bCaptureMouseOnLaunch=True bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bEnableDynamicComponentInputBinding=True bAlwaysShowTouchInterface=False bShowConsoleOnFourFingerTap=True bEnableGestureRecognizer=True @@ -116,8 +120,8 @@ DoubleClickTime=0.200000 +ActionMappings=(ActionName="ExtraPointer",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_Trackpad_Click) +ActionMappings=(ActionName="ExtraPointer",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_A_Click) +ActionMappings=(ActionName="ExtraPointer",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_X_Click) -DefaultPlayerInputClass=/Script/Engine.PlayerInput -DefaultInputComponentClass=/Script/Engine.InputComponent +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent DefaultTouchInterface=None -ConsoleKeys=Tilde +ConsoleKeys=Tilde diff --git a/SPPDemo/Config/Mac/MacEngine.ini b/SPPDemo/Config/Mac/MacEngine.ini new file mode 100644 index 0000000..865604a --- /dev/null +++ b/SPPDemo/Config/Mac/MacEngine.ini @@ -0,0 +1,2 @@ +[/Script/Engine.RendererSettings] +vr.InstancedStereo=False \ No newline at end of file diff --git a/SPPDemo/Config/steamvr_ue_editor_app.json b/SPPDemo/Config/steamvr_ue_editor_app.json index 9fa5433..a0b7df9 100644 --- a/SPPDemo/Config/steamvr_ue_editor_app.json +++ b/SPPDemo/Config/steamvr_ue_editor_app.json @@ -2,15 +2,15 @@ "source": "UE", "applications": [ { - "app_key": "application.generated.ue.sppdemo-10757647.ue4editor.exe", + "app_key": "application.generated.ue.sppdemo-19505902.unrealeditor.exe", "launch_type": "url", "url": "steam://launch/", - "action_manifest_path": "C:/Users/Martino/Desktop/Unamedia/ue4-stereo-panoramic-player-demo/SPPDemo/Config/SteamVRBindings/steamvr_manifest.json", + "action_manifest_path": "W:/Unamedia/ue4-stereo-panoramic-player-demo-v1-ue5.0/SPPDemo/Config/SteamVRBindings/steamvr_manifest.json", "strings": { "en_us": { - "name": "SPPDemo-10757647 [UE Editor]" + "name": "SPPDemo-19505902 [UE Editor]" } } } diff --git a/SPPDemo/SPPDemo.uproject b/SPPDemo/SPPDemo.uproject index 8e8377a..acf441f 100644 --- a/SPPDemo/SPPDemo.uproject +++ b/SPPDemo/SPPDemo.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "5.0", + "EngineAssociation": "5.1", "Category": "", "Description": "", "Modules": [ @@ -287,14 +287,6 @@ "Name": "SteamController", "Enabled": false }, - { - "Name": "SteamVR", - "Enabled": true, - "SupportedTargetPlatforms": [ - "Win64", - "Linux" - ] - }, { "Name": "OpenXR", "Enabled": true, @@ -305,22 +297,6 @@ "HoloLens" ] }, - { - "Name": "OculusVR", - "Enabled": true, - "SupportedTargetPlatforms": [ - "Win64", - "Android" - ] - }, - { - "Name": "WindowsMixedReality", - "Enabled": true, - "SupportedTargetPlatforms": [ - "Win64", - "HoloLens" - ] - }, { "Name": "Bridge", "Enabled": true,