在日前举行的State Of Unreal直播活动中,Epic Games创始人兼首席执行官蒂姆·斯威尼(Tim Sweeney)宣布Unreal 5正式版现已发布并开放下载。
Unreal 5最初在2021年5月发布了抢先体验版,并在今年2月上线了预览版,而现在则终于轮到正式版本。团队表示:“在这个版本中,我们的目标是助力各种规模的团队在视觉领域和互动领域挑战极限,施展无限潜能。Unreal 5将带来前所未有的自由度、保真度和灵活性,帮助游戏开发者和各行各业的创作者创造新一代实时3D内容和体验。”
在XR方面,Unreal 5同样有为开发者提供了一系列的支持功能,包含新增内容和漏洞修复:
1. 承诺Lumen以后会支持VR
这套完全动态的全局光照解决方案可帮助你创建虚实难辨的场景。有了Lumen,你不再需要编辑光照贴图的UV并等待光照贴图的烘焙,同时无需放置反射采集。你可以简单地在编辑器中创建和编辑光源,然后直接看到游戏或体验运行在目标平台时所呈现给玩家的最终光照。
尽管这项实时渲染尚未正式VR,但团队表示“我们将继续开发Lumen,并期望在未来支持nDisplay和VR工作流程”。
2. 可变速率着色
可变速率着色(Variable Rate Shading;VRS)允许调整渲染目标中像素的着色速率。Unreal引擎对VRS的支持包括:
- 支持DirectX 12和VRS Tier 2的Windows设备
- 支持Vulkan和VK_KHR_fragment_shading_rate扩展的Windows设备
- 支持Vulkan和VK_EXT_fragment_density_map扩展的Oculus Quest
3. VR Template
Unreal是在2021年5月的抢先体验版中提供了基于OpenXR 1.0的全新VR Template。团队表示,VR Template是虚拟现实项目的理想起点,包含了一系列用于构建移动机制和对象交互的基本功能和可扩展功能。另外,由于它是基于OpenXR,所以计划支持多款头显的开发者不必担心特定的配置。
对于Unreal 5正式版,团队进行了以下的优化:
- VR Pawn现提供一个头戴式显示模型
- Grab System支持Component Grab and Drop
- VROccessor可以使用Gamepad进行控制
4. Platform SDK更新
- ARCore 1.22
- ARKit 4.0
- Oculus 33.0
- OpenXR 1.0.22
- SteamVR 1.5.17
5. Magic Leap和HoloLens
注意,Unreal不包含Magic Leap插件。如果你的Unreal项目针对的是Magic Leap设备,你应该继续使用Unreal 4.27。
另外,HoloLens插件及其所有功能已完全集成到Unreal 5中,所以你不再需要HoloLens插件,同时无法将其添加到项目之中。如果你有一个使用HoloLens插件的现有项目,引擎在升级到UE5后并在你首次打开所述项目时将提示删除插件的配置数据。
6. 其他一系列的XR相关新增内容和漏洞修复
- 为避免与新引擎定义混淆,已将EColorSpace重命名为EOculusColorSpace。
- 修复了由于OpenXR和OculusVR插件而丢失Android强制反馈的问题。
- 修复了每当连接VR头显时,编辑器都会进行throttle的问题。
- 修复了由于缺少游戏二进制文件而导致UE5二进制文件无法为HoloLens打包BP项目的问题。所有HoloLens打包都需要运行UBT,所以这个步骤会生成用于生成打包的最终目标文件。这意味着即使是仅用于蓝图项目,你都需要将VisualStudio设置成为HoloLens打包。
- 修复了使用VR头显时编辑器视口会变慢的问题。
- 创建了OpenXR函数GetControllerTransformForTime,它可用于查询控制器在指定时间的速度和加速度。
- 添加了在OpenXR扩展插件中使用OpenXR chain structs的机制。
- 现在你可以在OpenXR扩展插件中定义swapchain和renderbridge。
- 为OpenXR添加了在VR HMD播放触觉的infrastructure。
- XR HMD插件现在可以覆盖Android设备配置文件名。
- 修复了与OpenXR运行时不提供各类型追踪数据相关的问题。
- 运行时数据现在是每个控制器的数据,常量批量数据由OpenXR API中的所有控制器共享。这解决了无法同时在两台设备应用相同触觉效果的问题。
- 修复了在多VR平台中VR Console Command窗口无法与玩家视图对齐的问题。现在,调试画布将绘制到内部纹理,所以不再从视口应用DPIScale。
- 如果启用了Instanced Stereo Rendering,ShadowProjection通道将不再检查以重用LoadBalancers。
- 通过添加前缀“Retrieved_”更改了检索到的Android清单的文件名,这样它们就不会覆盖已经生成的清单。
- ETextRecreateFlags for resolve和ETextRecreateFlags for target在OpenXR中已经统一,因为只分配了一个纹理。需要注意的是,依然存在IStereRenderTargetManager公开这两组纹理flag的问题,而使用RHICreateTargetableShaderResource的具体类依然需要各自的flag。
- 当Instanced Stereo Rendering视图出现时,不再使用deferred culling context。
- OpenXR HMD现在使用来自OpenXR扩展插件的自定义OpenXR XrReferenceSpaceType。
- 修复了在启用Windows Mixed Reality插件且Windows build晚于2004时,Unreal编辑器中出现的启动错误。这是一个临时修复,因为WMR插件在5.0中标记为已弃用,并将在未来版本中删除。
- Windows Mixed Reality RHI现在在创建D3D11设备时使用non-null显示适配器。
- 为防止失败,在HoloLens将macro PLATFORM_USE_GENERIC_STRING_IMPLEMENTATION设置为0。
- 修复了SceneCapture在不应以stereo启用时的问题,因为它没有视口。由于SceneCapture不应以stereo启用,CreateSceneRenderForSceneCapture会显式禁用stereo。
- 为了与其他平台实现保持一致,HoloLens打包支持模块已从“HoloLens”/“HoloLensAR”插件转移到引擎中。现在“HoloLens”/“HoloLensAR”插件被删除。启用所述插件的现有项目将触发“HoloLensAR plugin missing.Continue/Cancel”对话框。若选择“继续”,删除的插件引用将从项目文件中删除。任何对已删除插件的引用都应该被删除,但大多数代码引用的是模块而不是插件,并且应该会继续按预期工作。
- OpenXR HMD函数DrawHiddenAreaMesh_RenderThread和DrawVisibleAreaMesh_RenderThread不再检查渲染线程,并已重命名为DrawHiddenAreaMesh和DrawVisibleAreaMesh。相关的平台运行时功能将随着这一变化而更新。
- MRMesh现在使用Chaos物理进行运行时异步collision cooking。AR设备使用它来表示真实世界几何扫描特征。
- 将特定于Oculus插件的触觉数据重采样功能移到Oculus插件中。
- 通用stereo-enabled逻辑已移至FSceneViewExtensionContext。