NVIDIA (496.76+) DirectX 11: 最新驱动程序 DirectX 12: 最新驱动程序 Vulkan: AMD (21.11.3+) 和 NVIDIA (496.76+) UE5 渲染功能使用要求 虚幻引擎5某些渲染功能的系统要求和最低要求有所不同。 UE5功能 系统要求 Lumen全局光照和反射系统 软件光追:使用DirectX 11的显卡,并且支持Shader Model 5硬件光追:带有DirectX 12支持的Windows 10系统显卡必须是 ---- 安装步骤 ---- 1、进入ue5官网, https://www.unrealengine.com/zh-CN/download 然后点击下载。 3、点击“虚幻引擎”来安装ue5 4、点击右上角的“没有安装”右边的小倒三角形 5、然后勾选授权协议,点击接受 6、设置安装位置 7、等待安装中 8、安装完成,点击启动,然后就可以使用了。
2.下载安装Unreal Engine引擎 2.1 打开Epic Games Launcher:安装完成后,打开Epic Games Launcher。 2.4 访问虚幻引擎库:登录后,在Epic Games Launcher中,点击“虚幻引擎”选项,进入虚幻引擎库。 2.5 选择UE5版本:点击“库”,点击“加号”(目前我的电脑已经安装了5.1.1,故已有5.1.1相关图标按钮),在虚幻引擎库中,你可以看到不同版本的Unreal Engine。 找到你想要安装的UE5版本(如5.x版本),点击它旁边的“安装”按钮。 2.7 选择安装位置:选择你希望安装UE5的文件夹位置。建议选择一个有足够空间且便于管理的位置。 勾选相应选项,点击“应用”,然后点击“安装”,等待安装完成即可。
封装的更激进也更彻底一些,整个TaskGraph贯穿了引擎所有重要的模块。 整个框架非常的复杂,想要理解清楚也非常有挑战性。 因此本文主要介绍在业务中怎样使用TaskGraph,以及梳理内部的实现原理,UE5和UE4的TaskGraph对比和改进点,当然也会介绍一些TaskGraph多线程优化的内容。 这里只简单说一下Relaxed就是程序完全不关心内存是否同步,而SequentiallyConsistent会严格保证顺序 而UE5直接废弃掉了原子变量TAtomic,直接使用std::atomic, UE5提供了Scheduler这样的新机制,而且默认使用新机制,可以不限数量,支持处理器组(操作系统规定处理器组最多64个线程,超过了就会分组),完美满足超过64核的机器使用。 这部分是UE5特有的,为了支持任意多个线程新加的机制。
这篇文章主要就是来从细节触发,讲清楚这个LockFree容器到底是怎样实现的,代码里很多诡异的写法的用意是什么,UE引擎的多线程性能非常好,跑得这么快,到底快在了哪里? 基础知识 在开始之前,先来说说UE提供的另一个队列TQueue,为什么UE要另搞一套LockFree容器来作为TaskGraph的底层容器而不是直接使用TQueue。 TaskGraph是贯穿整个引擎的多线程框架,到处都在用,并发量肯定不会低,因此这样的行为显然不能接受。 UE就用了一种取巧的做法,前面也说了UE的LockFreeList容器,提供了对象池,而对象池本身的节点,是TLockFreeAllocOnceIndexedAllocator里分配的。 另外UE5的TaskGraphInterface内部管理Task换成了一套新的Scheduler,本身也没有这个26个线程的限制,所以UE5不用做这个修改,当然如果特殊需要可以把控制台变量GUseNewTaskBackend
1.介绍UE5 UE,英文全称Unreal Engineer,中文全称虚幻引擎,5是UE的最新版本。它是由Epic Games开发的一款全面的游戏开发平台。 2024年热度最高的3A游戏“黑神话悟空”就是由UE5制作。 2.什么是游戏引擎 游戏引擎是一套用于创建电子游戏的软件开发工具。 游戏引擎的主要目的是简化游戏开发流程,提高开发效率,让开发者可以利用现有的技术和工具专注于创造独特的游戏体验。不同的游戏引擎针对不同的需求和目标平台。 3.介绍UE和Unity Unreal Engine(UE)和Unity都是当今游戏开发中最受欢迎的两个游戏引擎,它们各自具有独特的优势,适用于不同类型的游戏开发和其他应用领域。 国内大多数中小型公司使用Unity,一般情况UE在大型公司使用频率会相对高些。以上情况也不是绝对的,只是给大家一个基本的印象,比如原神这种高画质作品使用的游戏引擎则是Unity
TSet和TMap是UE里面最常用的容器之一,和数组不同的是,元素本身并不连续存储,而是通过hash映射存储,因此相对于数组,查询元素是非常快速的。 因为把很大的Hash值映射到了有限的范围内,那一定有概率发生Hash冲突,UE的解决办法是先不管冲突,拿到index访问TSetElement。 这就是UE4这两个容器最有特色的地方。 所以,UE的这两个容器,即可以排序,又可以快速查找,游戏业务用起来就真的非常爽了。 因为UE的容器,都实现了begin(),end(),所以支持C++的range-for语法,可以放心使用:
这里我选择了UE4,我认为的UE4有独特优势。 1)首先我是搞C++开发的,从2014年5月19日,Epic发布了Unreal4,目前最新也是Unreal4。 4)UE4是免费的,游戏引擎的源代码可以从Github开源社区下载,这意味着开发者对游戏引擎有着控制权,你可以修改任何东西,包括物流引擎,渲染和图像用户界面。 5)UE4是跨平台的,你可以用来制作Xbox One、PlayStation4(包括索尼的Project Morpheus虚拟现实设备),Windows PC,Linux,Mac OSX,HTML5,iOS 现在,你可以用来开发游戏,并且发行,而且不需要为UE4游戏引擎支付一分钱。只有在你赚到了3000美元收益之后,你才需要支付5%的技术使用费。 下图为UE4游戏引擎制作出来的官方示例宣传视频画面: ?
UE虚幻引擎是一款强大的3D实时开发工具,可用于游戏开发、建筑及汽车可视化、影视内容创作、广播及现场活动制作、培训及仿真模拟以及其他实时应用。 在UE实际开发过程中,新手工程师可能会遇到总是打包失败的情况,本文整理了UE虚幻引擎新手打包全攻略,可以尝试按照以下方式来排查解决。一、打包前的准备1. 运行项目,测试项目各个功能模块是否正常运行。 打开项目设置;5. 设置“打包”(必要)。打开“项目设置”勾选“创建压缩烘焙包”可以减少打包的大小。如果不设置,包括的地图列表,ue将会把项目所有使用和未使用的资源进行打包。 3DCAT元宇宙实时渲染云是在5G网络、云计算、游戏引擎等技术迅速发展的前提下,为解决终端算力不足、画面表现较差、初期采购成本高等问题应运而生的一套利用云端渲染3D应用并实时推送到终端的综合性解决方案。 3DCAT实时渲染云平台支持能在 Windows 渲染的几乎所有 3D 引擎。现在注册立赠79分钟实时云渲染免费体验!点击注册本文《【UE虚幻引擎】手把手教学,UE新手打包全攻略!》
UE虚幻引擎是一款强大的3D实时开发工具,可用于游戏开发、建筑及汽车可视化、影视内容创作、广播及现场活动制作、培训及仿真模拟以及其他实时应用。 在UE实际开发过程中,新手工程师可能会遇到总是打包失败的情况,本文整理了UE虚幻引擎新手打包全攻略,可以尝试按照以下方式来排查解决。 一、打包前的准备 1. 打开项目设置; 5. 设置“打包”(必要)。 打开“项目设置” 勾选“创建压缩烘焙包”可以减少打包的大小。如果不设置,包括的地图列表,ue将会把项目所有使用和未使用的资源进行打包。 3DCAT元宇宙实时渲染云是在5G网络、云计算、游戏引擎等技术迅速发展的前提下,为解决终端算力不足、画面表现较差、初期采购成本高等问题应运而生的一套利用云端渲染3D应用并实时推送到终端的综合性解决方案。 3DCAT实时渲染云平台支持能在 Windows 渲染的几乎所有 3D 引擎。 本文《【UE虚幻引擎】手把手教学,UE新手打包全攻略!》
RHI是Render Hardware Interface的缩写,虚幻引擎通过RHI把各个平台的图形API包装成统一接口,供上层渲染来使用,让业务不用过多的关注API细节(实际还得关注RHI细节)。 UE5的RHI里也像Vulkan一样,把顶点或索引Buffer这样的说法废弃了,他们本质上都是一维数据,所以也用统一个类型表示就足够了。 因为虚幻引擎的RHI里面封装的类名,也是这些名字在混着用的,看代码时候可以根据命名,对照着表格就大概知道底下到底是什么了 知道了API的大概原理,下面就好讲RHI具体是怎么封装了。 通过搜索FParallelCommandListSet可以看到UE5有很多地方都在并行提交,比如在绘制网格BasePass的时候,会切分出多个线程的Task来执行。 其实仔细思考,场景中很多不同的网格的阴影和BasePass等,这些网格之间并没有关系,虽然都是往同样的RT或GBuffer上绘制,虽然资源相同,但因为这里只是提交命令的收集,完全并行起来也不会有问题,这也是UE5
StructUtils是UE5新增的一个针对结构体存储和反射的辅助插件。 之前在说UE5的ECS框架Mass时有粗略提到这个插件里的相关内容,比如Mass在实现ECS的Component就是使用了FInstancedStruct来保存元信息。 StructUtils这么有用的库,搜索全网基本没有发现相关资料,独乐乐不如众乐乐(封面番《孤独摇滚》就讲的这故事),为了造福国内开发者普及UE5,本文主要就来揭秘这些类的使用方法和内部原理。 实例作为UPROPERTY的,这时如果想制作一个通用的数据表,在UE5之前,我们就只能定义一个完整的表结构,包含所有可能用到的数据,用不到的数据列就会浪费掉,当可变的项越多浪费的就越多。 而UE5就可以使用FInstancedStruct让表格实现多态。
使用虚幻引擎(Unreal Engine,简称 UE)开发数字孪生项目是行业内的主流选择,尤其适用于对图形质量、沉浸感、实时渲染性能和物理模拟精度有高要求的项目。 第一阶段:规划、模型导入与优化(资产准备)目标: 定义项目范围、获取高质量的三维模型,并将其导入 UE 引擎环境。 场景布局: 基于实际地理或平面图,在 UE 场景中精确摆放所有资产。第二阶段:引擎逻辑构建与数据连接集成目标: 利用 UE 的脚本和插件系统,建立数据驱动模型所需的所有底层通信和逻辑框架。 1.模拟与分析:物理模拟: 如果需要,集成 UE 的物理引擎(如 Chaos),模拟碰撞、重力或流体等。流程模拟: 基于实时数据或历史模型,模拟资产在不同工况下的运行状态,并在场景中可视化预测结果。 为客户的技术团队提供 UE 引擎、蓝图逻辑和数据绑定框架的定制培训,使其能够进行后续的维护和简单迭代。3.售后支持:建立维护协议,支持解决部署后的 Bug、进行引擎版本升级,或协助集成新的数据源。
世界分区,是UE5给大世界项目提供的一套新的解决方案。相比于UE4的WorldComposition有了非常多的改进。 除了WorldPartition,UE5还有很多其他模块也是这样管理的,包括SmartObject,ZoneGraph等。 LevelInstance 这个是ue5的一个新的机制,有点类似unity的prefab。 在ue4的时候,每个子关卡都可以有个自己的蓝图,但是ue5的WorldPartition都是一个大关卡了,那么正常情况只有一个关卡蓝图,这对于策划来说是很坑的。 ContentBundle 这个功能肯定有人好奇是什么,官方连文档也没有,但是ue5的WorldPartition里还提供了一个编辑器。 其实这个功能是给GameFeature用的。
ddx/ddy 文档上的说明如下: 虚幻引擎工具类材质表达式 | 虚幻引擎5.0文档 (unrealengine.com) ddx是右减左的差值,ddy是下减上的差值。
动画在UE4/UE5项目中,往往不仅是GPU和渲染线程开销大户,也是游戏线程的开销大户。 为了回答这些问题,我觉得很有必要说一说动画在虚幻引擎内部的执行流程,最后也会说下我在虚幻引擎动画这块推荐的优化手段。 骨骼动画的本质 UE4/UE5的骨骼动画其实都是通过SkeletalMeshComponent来实现的。 UE4/UE5的SkeletalMeshComponent,其实就是把美术做的多个动画原始的Pose资源(AnimSequence),通过动画蓝图做混合,得到最终的一个Pose,再根据这个Pose做蒙皮求得每个顶点实际位置并绘制的过程 UE5也已经支持了动画蓝图里面在子线程更新变量,基本可以让事件图表什么都不做或只做很简单的事情,这样游戏线程在动画更新前基本上可以做到没开销。
因为业务和引擎代码本身都是基于C++,所以对于解决常规C++的Crash的方法虚幻引擎完全适用,除此外引擎在异常处理上相比于普通的C++程序还是提供了一些额外的方法和工具。 本文主要介绍虚幻引擎在处理Crash时的一些做法和经验技巧。 常规崩溃定位 当游戏崩溃时,对于开发来说肯定是希望能定位到哪行代码崩了,发生崩溃当时的内存是什么样的,在虚幻引擎里这个工作是引擎自动做的。 我们平常一直说UE4/UE5的项目不要使用STL也是因为这个机制。 最常用的就是下面几个: Ansi:这个是标准的分配器,也就是让UE4不使用任何额外的内存管理,就直接走平台原生的new和delete,有时候需要用到平台的一些内存工具,开到这个模式会非常好。 UE5也提供了Stomp2可以运行时通过命令行-stomp2malloc打开 PoisonProxy:这个模式就像名字说的一样,把内存都涂上毒。
使用的版本:UE5 Early Access 地形系统介绍 UE 可以直接在编辑器中创建并编辑地形,编辑地形的模式有两种:Sculpt 和 Paint。 Sculpt 的作用是对地形进行造型和雕刻,Sculpt 对地形产生的修改最终会体现在 Heightmap 即高度图中,UE 会在运行时对这张图进行采样,从而产生地形 Mesh,很经典的做法。 在运行时,UE 会对当前地块的 Weightmap 和 Layer 纹理进行采样,并进行混合,最终形成地表。 要在 UE 中创建地形,需要先切换到 Landscape Editing Mode: Landscape Editing Mode 在 Manage 面板,我们可以输入参数创建新的地形: Landscape 这时候你可以注意到,左边的 Paint 面板已经自动识别到了我们刚刚创建的几个 Layer: Paint Layers 我们需要为每一层 Layer 创建一个 LayerInfo Object,后面 UE
更新Launcher后可以在顶上看到UE5的tab页,点击下载 确认 怀着激动的心情等待下载,家里电信下载速度还可以 10分钟左右,下好开冲! 呵呵,只好重启 随便开一个老工程,会自动升级 跟UE4一样,第一次要等待漫长的编译Shader 进来了 先随便运行一下 虚幻5编辑器界面 quabqi的视频 · 1705 播放 编辑器感觉使用起来和 UE4差不多,就是底下的默认隐藏了,要按Ctrl+Space才能打开。 打开后,这场景真的很细节 打开一块石头 从里往外看 最后在编辑器里运行起来,真的震撼,感受一下 UE5官方DEMO quabqi的视频 · 2689 播放 我是4K桌面,知乎上传的视频不知道为什么是糊的
ControlFlows是UE5新增的一个插件,针对上述这种流程式的业务模型,封装了一套通用的类状态机但更简化的流程控制框架。 插件本身的实现对引擎的新功能没有依赖,所以理论上手动移植到UE4上应该也会比较容易。