From d79b1b2398ac7ccc13dfc6aa26fa31cb8c3bd7a6 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Sat, 6 Sep 2025 19:50:39 +0800 Subject: [PATCH] =?UTF-8?q?UnrealFest2025=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../虚幻开放日2025/Hitch Hunter:排查逐帧瓶颈.md | 74 +++++++++++++++++ .../虚幻开放日2025/UE5.6移动端开发最新进展.md | 17 ++++ .../演讲与教程笔记/虚幻开放日2025/Untitled.md | 62 ++++++++++++++ .../《漫威争锋》基于GAS的多人战斗框架开发分享.md | 81 +++++++++++++++++++ .../《鸣潮》中的光线追踪:用光线构建动漫风格开放世界.md | 71 ++++++++++++++++ .../演讲与教程笔记/虚幻开放日2025/三角洲.md | 47 +++++++++++ .../超越PrintString:虚幻引擎调试工具极速巡览.md | 17 ++++ .../虚幻开放日2025/高通移动端插帧技术介绍.md | 52 ++++++++++++ 8 files changed, 421 insertions(+) create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/Hitch Hunter:排查逐帧瓶颈.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/UE5.6移动端开发最新进展.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/Untitled.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/《漫威争锋》基于GAS的多人战斗框架开发分享.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/《鸣潮》中的光线追踪:用光线构建动漫风格开放世界.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/三角洲.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/超越PrintString:虚幻引擎调试工具极速巡览.md create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2025/高通移动端插帧技术介绍.md diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/Hitch Hunter:排查逐帧瓶颈.md b/02-Note/演讲与教程笔记/虚幻开放日2025/Hitch Hunter:排查逐帧瓶颈.md new file mode 100644 index 0000000..3cc30fd --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/Hitch Hunter:排查逐帧瓶颈.md @@ -0,0 +1,74 @@ +--- +title: Untitled +date: 2025-08-22 11:20:14 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- +# Level Streaming Hitch +## Using Actor for Static Geometry +1. 不要在Actor中放入过多StaticMesh。避免使用Actor—+Stat + +应该使用: +1. PLAS,Level打包Actor功能。 +2. PCG +3. ISM/HISM +4. Foliage Tool +5. Niagara/Mass + +## 5.6 针对大世界流式加载有迭代 +## Fast Stream Plugin +巫师四使用了这个插件。 + +# Physics Hitch +## 优化你的物理 +1. 使用Simple Physics +2. 手动关闭Complex Physics +3. 使用Use Simple As Complex + +## 设置碰撞通道 +1. 关闭不需要的Overlaps,也就是关闭不需要Actor的Generate Overlap Events。 +2. 设置Update Overlap Method During Level Streaming => ,可以在ini或者PerActor中惊醒设置。 + +## 减小物理场景大小 +1. Chaos Visual Debugger +2. 使用物理代理 + 1. +3. 使用AsyncTraces + 1. 1 + +## 异步物理初始化 +PS. 5.6 Chaos有若干提升。 + +# Actor Spawning Hitch +1. 简化Actor +2. 限制Per Frame Spawn Num +3. **延迟初始化组件** + +## Actor Pool + +# PSO Compilation Hittches +1. Bundled PSO Cache + +## PSO Precaching +5.3 默认开启。 + +5.3之前,你需要设置PSO Bundleed +5.3之后。默认开启Precacheing, 5.6支持在LoadingScreen 过程中变异 + +建议:PSO Prechacing Bundled PSO Cache 混用 +## CMD +-clearPSODriverCache +r.psoprecache. 通过日志来记录Miss情况。 + +# Garbage +## +obj list -countsort + +# 同步载入卡 + +github flassari/CommonValidator \ No newline at end of file diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/UE5.6移动端开发最新进展.md b/02-Note/演讲与教程笔记/虚幻开放日2025/UE5.6移动端开发最新进展.md new file mode 100644 index 0000000..4ee63dc --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/UE5.6移动端开发最新进展.md @@ -0,0 +1,17 @@ +--- +title: Untitled +date: 2025-08-22 15:40:10 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- + +# 抗锯齿 +支持类似Arm、高通上采样方案。 + +# Misc +1. 延迟 \ No newline at end of file diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/Untitled.md b/02-Note/演讲与教程笔记/虚幻开放日2025/Untitled.md new file mode 100644 index 0000000..7884b81 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/Untitled.md @@ -0,0 +1,62 @@ +--- +title: Untitled +date: 2025-08-23 13:07:58 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- + +## Quickshots +- Ctrl + 空格 +- F10 + Tab:显示所有标签页。 +- Alt+ Middle: 重置轴心 +- Alt+A:Attach Actor to other。 +- K:开启Simulate来调整物体位置(物理模拟摆放) + +## Actor Palette +可以将其他Level中的Actor拖到当前关卡中。 + +## Inject Volumetric Fog with Materials + +## 建模模式 +### Cube Grid做关卡原型 +Shift+E + +### Draw Spline Tools +可以对一些有Spline组件的蓝图绘制Spline。 + +## Texture Variation Material Node +解决地形贴图重复问题。 + +## 属性检查功能 +Ctrl+Click 点击Actor的属性,可以显示所有当前属性相同的物体,可以用用于检查哪些物体的属性改动。 + +## LocationVolume(大世界) +用于命名体积惊醒加载。 + +## CustomFilter +可以用于查询面数大于xxx,开启Nanite的Mesh。 + +## Spline Mesh Component 弯曲网格功能 + +## Level Actor Zoo +Mesh物体展示功能 + +## Niagara Data Channel +将数据写入CPU(Gameplay)的节点。 + +## Translucenty Overlay Materials(重要) +可以用于控制阴影 + +## Post Process Material Chain Plugins(重要) +后处理结果渲染到RT上。 + +## Console Variable(重要) + +## ABTest(功能) +abtest showflag.fog 0 1 +abtest stop \ No newline at end of file diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/《漫威争锋》基于GAS的多人战斗框架开发分享.md b/02-Note/演讲与教程笔记/虚幻开放日2025/《漫威争锋》基于GAS的多人战斗框架开发分享.md new file mode 100644 index 0000000..a77a049 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/《漫威争锋》基于GAS的多人战斗框架开发分享.md @@ -0,0 +1,81 @@ +--- +title: Untitled +date: 2025-08-22 14:04:53 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- +# GAS + +# 战斗框架 +- GA +- GE +- Task +- Cue:UX、特效、材质、音效 + +Ability => Task => GE =>Cue + +## 功能拓展 +传统数据表格无法满足所有配置。 + +### 数据配置 +拆分成: +1. AbilityAesst:技能的基础框架性配置,涉及UI、输入、镜头等公共配置。 +2. AbilityConfig:以InlineStruct内敛AbilityAesst内用于各个技能特殊的逻辑配置。 +3. AbilityBP:技能关系,技能状态,类型标识等逻辑配置。 + +扩充AbilityTask: +ActivateAbility => 各种Task + +### AbilityTemplate +ActivateAbility + PlayTimeLine + PlayProjectile + HitImpact +### TimeLine(技能编辑器) +实现了一个类似Montage的TimeLine资产来管理时间轴相关的技能、效果。将GE、Cue等其他所有东西都加入编辑器中。 + +### Buff系统 +- Buff(实例Buff):配置生命周期、叠层、周期、脚本等、覆盖Effect模版配置。 + - Effect(Effect模版):增益/减益类型、修改属性方式、阻塞/驱散关系等 + - Status(底层细粒度状态控制):不可移动、不能跳跃、控制不同类型的状态等 + +1. Buff系统 + 1. 每个技能独立 + 2. 引用Effect + 3. 1000+ +2. Effect + 1. 英雄共性效果 + 2. 引用Status +3. Status + +### 特效表现 +- CueDataProxy:Gameplay来传递额额外信息到GameplayCue。 +- DataInterface:Niagara通过这个玩意来获取Gameplay层的底层数据。 +#### 示例 +qi +### 基建开发 +#### 检测管线 +新规则加入不会影响旧的检测配置。 + +# 预测机制 +- FScopedPredictionWindows:通过构造与析构来标定预测逻辑的生命周期窗口。 +- FpredictionKey:预测的唯一标识。 + +## 对Key进行层级分布 +### 层级分布Key的好处 +具备关联性。 + +### 回滚所有行为 +- 可回滚 + - 激活、结束等流程动作(结束) + - 冲刺位移等客户端输入行为(拉回) + - 法术场、召唤物等独立实体(销毁) + - 能量、弹药等主段消耗(重置) +- 不回滚 + - 动画、特效、UI等纯表现行为 + - 投射物、瞬时弹道(一次性) \ No newline at end of file diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/《鸣潮》中的光线追踪:用光线构建动漫风格开放世界.md b/02-Note/演讲与教程笔记/虚幻开放日2025/《鸣潮》中的光线追踪:用光线构建动漫风格开放世界.md new file mode 100644 index 0000000..d5d9137 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/《鸣潮》中的光线追踪:用光线构建动漫风格开放世界.md @@ -0,0 +1,71 @@ +--- +title: 《鸣潮》中的光线追踪:用光线构建动漫风格开放世界 +date: 2025-08-22 16:35:32 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- +# Rtx +实现功能 +1. Rtx反射 +2. RtxGI +3. RtxShadow + +# 选型&快速验证 +需求 + 32km 32km + 二次元 + TOD + 4060 2k 60fps + +方案: +1. ReSTIR +2. Lumen(简略版,砍掉一些不需要的过程) + 1. GI + 2. Reflection + 3. 重新开发Clipmap Irradiance Cache来代替Surface Cache +## ReSTIR +1. 时间、空间重采样 +2. 计算光照 +3. 使用SHaRC、NRD降噪库。 + +**SHaRC(Spatially Hashed Radiance Cache)** +1. 解决Multi-Bounce Problem +2. 基于世界空间稀疏哈希的Radiance Cache +3. 默认只有2次反射 + +**NRD(Nvidia Real-time Denoising)** +1. 基于Spatio-Temporal的降噪器,开箱即用。 +2. 用于最终降噪输出。 +3. 性能消耗较高:4080 2k 2.3~3.0ms + +### 缺点: +1. 实现起来简单,光照效果好,但带宽性能压力大。 +2. 远处、边缘有噪点。 + +# 功能实现与迭代经验 +## ToonShading +案例1:角色自阴影 +- 光栅化 + - 场景:CSM + - 角色:PerObjectShadow +- Rtx + - 用剔除角色的InstanceMask做ToonShadowRay + +```c++ +if(IsToonShadingModel(ShadingModelID)) +{ + RayTracingMask |=RAY_TRACING_MASK_SHADOW_NOT_TOON; +} +``` + +案例2:角色接入GI + + +案例3:角色接入反射 + + diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/三角洲.md b/02-Note/演讲与教程笔记/虚幻开放日2025/三角洲.md new file mode 100644 index 0000000..4026785 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/三角洲.md @@ -0,0 +1,47 @@ +--- +title: Untitled 1 +date: 2025-08-23 15:56:02 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- +# 要求 +全地图GI覆盖 + +# GI方案 +1. LightMap + 1. 性能消耗低 + 2. 项目成本高 +2. VolumnGI + 1. 性能消耗中等 + 2. 项目成本可以接受 +3. DynamicGI + 1. 性能消耗高 + 2. 项目成本低 + +PC/主机需求: +1. 显存。 + +Mobile: +1. 低包量 +2. 性能、发热(CPU瓶颈) +3. 降低成本 + +多人:LightMap + VolumenGI +单人:Lumen + +## LightMap +制作效率限制 + +## VolumnGI +性价比并没有想象中那么高,感知不强。容易掉进开发陷阱。 + +### 防漏光 +需要告诉美术如何解决漏光问题。 +J3:所有墙体大于0.25m,就不会漏光。小于0.25 使用Hack方法 + +### 稀疏体素树 openvdb \ No newline at end of file diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/超越PrintString:虚幻引擎调试工具极速巡览.md b/02-Note/演讲与教程笔记/虚幻开放日2025/超越PrintString:虚幻引擎调试工具极速巡览.md new file mode 100644 index 0000000..c45ee4b --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/超越PrintString:虚幻引擎调试工具极速巡览.md @@ -0,0 +1,17 @@ +--- +title: Untitled +date: 2025-08-22 13:36:51 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- + +# +## BuildGraph +-ListOnly +-Preprocess + diff --git a/02-Note/演讲与教程笔记/虚幻开放日2025/高通移动端插帧技术介绍.md b/02-Note/演讲与教程笔记/虚幻开放日2025/高通移动端插帧技术介绍.md new file mode 100644 index 0000000..5a74bc3 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2025/高通移动端插帧技术介绍.md @@ -0,0 +1,52 @@ +--- +title: 高通移动端插帧方案 +date: 2025-08-22 13:40:42 +excerpt: +tags: +rating: ⭐ +status: inprogress +destination: +share: false +obsidianUIMode: source +--- +# 类型 +1. 基于图像的插帧:G-FRC + 1. 功耗低、扩展性强、介入成本低。 +2. 基于3D信息的插帧:AFME2.0 + 1. 功耗中、扩展性中、介入成本中,游戏需要渲染速度信息。 +3. 基于AI + +# 高通方案 +PS. 部分方案不分平台,可在非高通芯片上运行。 + +- GPU + - adreno图像运动引擎1.0: + - 基于图像的插帧 + - 支持内外插帧 + - 支持30->60,45->90,60->120。 + - 可扩展 + - Adreno图像运动引擎2.0: + - 基于3D信息,需要速度与深度Buffer、转换矩阵。 + - 支持内外插帧 + - 支持30->60,45->90,60->120。 + - 高通提供Lib + - 优势: + - 低延迟 + - 平台支持率高 + - 支持GLES与VK + - 游戏 + - 逆水寒 + - 鸣潮 +- NPC + - G-FRC+ + - 不需要开发者集成。手机厂商实现。 + - 支持超分与插帧。 + - AI FRC 2.0 + +# 相关资料 +- https://www.qualcomm.com/developer +- https://www.qualcomm.com/snapdragon/gaming +- https://www.qualcomm.com/developer/snapdragon-game-toolkit +- https://docs.qualcomm.com/bundle/publicresource/topics/80-78185-2/guides.html +- https://github.com/SnapdragonStudios/snapdragon-gsr +- https://www.qualcomm.com/developer/blog/2024/03/gpu-motion-estimation-improved-handing-repeating-patterns \ No newline at end of file