Merge remote-tracking branch 'origin/master'
This commit is contained in:
8
03-UnrealEngine/Gameplay/GAS/其他社区文章.md
Normal file
8
03-UnrealEngine/Gameplay/GAS/其他社区文章.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Untitled
|
||||
date: 2025-07-25 15:39:41
|
||||
excerpt:
|
||||
tags:
|
||||
rating: ⭐
|
||||
---
|
||||
- UE4/UE5 GAS共享冷却插件(SharedCoolingAbility) https://zhuanlan.zhihu.com/p/32216887423
|
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: Untitled
|
||||
date: 2025-07-25 14:49:41
|
||||
excerpt:
|
||||
tags:
|
||||
rating: ⭐
|
||||
---
|
||||
# 相关CVar参数
|
||||
- CommonLoadingScreen.AlwaysShow:总是显示
|
||||
- CommonLoadingScreen.LogLoadingScreenReasonEveryFrame
|
||||
- CommonLoadingScreen.HoldLoadingScreenAdditionalSecs:载入完成后的等待时间。
|
||||
|
||||
# 相关逻辑
|
||||
- ***ULoadingScreenManager***:核心逻辑。
|
||||
- UCommonLoadingScreenSettings:各种设置参数。
|
||||
- ULoadingProcessTask:继承ILoadingProcessInterface接口,只需覆盖ShouldShowLoadingScreen()。
|
||||
- FCommonStartupLoadingScreenModule:StartupModule()、FPreLoadScreenManager::OnPreLoadScreenManagerCleanUp()绑定OnPreLoadScreenManagerCleanUp()。
|
||||
- SCommonPreLoadingScreenWidget:LoadingScreen Slate控件。
|
||||
|
||||
## ULoadingScreenManager(UGameInstanceSubsystem)
|
||||
- Initialize():绑定PreLoadMapWithContext与PostLoadMapWithWorld委托。
|
||||
- Deinitialize():移除BlockInput、移除Widget、移除委托、关闭Tickable。
|
||||
- ShouldCreateSubsystem():覆盖接口函数,对于非Server端都会加载LoadingScreen。
|
||||
- FTickableGameObject
|
||||
- Tick():调用**ShouldCreateSubsystem()**,计算TimeUntilNextLogHeartbeatSeconds。
|
||||
- GetTickableTickType()
|
||||
- IsTickable():如果GameInstance有效且拥有游戏窗口就可以进行Tick。
|
||||
- GetStatId():STATGROUP_Tickables
|
||||
- GetTickableGameObjectWorld():GetGameInstance()->GetWorld();
|
||||
- RegisterLoadingProcessor():用于坐车任务,在ULoadingProcessTask::CreateLoadingScreenProcessTask()被调用。
|
||||
- UnregisterLoadingProcessor():用于卸载任务,在ULoadingProcessTask::Unregister()被调用。
|
||||
- **HandlePreLoadMap()**:修改bCurrentlyInLoadMap为true,之后调用UpdateLoadingScreen()。
|
||||
- **HandlePostLoadMap()**:修改bCurrentlyInLoadMap为false。
|
||||
|
||||
### FPreLoadScreenManager
|
@@ -27,6 +27,11 @@ pix的单步调试需要开启**开发者模式**,具体是在window的设置
|
||||
|
||||
## 抓帧技巧
|
||||
- [RenderDoc抓帧steam平台](https://zhuanlan.zhihu.com/p/721764908)
|
||||
- 关闭并行绘制相关命令:
|
||||
- **r.RHICmdBypass=1**
|
||||
- **r.MeshDrawCommands.ParallelPassSetup=0**
|
||||
- **r.MeshDrawCommands.UseCachedCommands=1**
|
||||
- **r.RDG.ImmediateMode=1**
|
||||
|
||||
# UE相关设置
|
||||
开启Renderdoc的PixelDebug功能:
|
||||
|
@@ -1534,6 +1534,7 @@ void AShaderWorldActor::CollisionCPU()
|
||||
BPRecomputeScope = BPCollisionRebuildRequest, ColRingCount = CollisionGridMaxRingNumber, LocalActorLocation, LocalOriginLocation,
|
||||
Height0 = HeightOnStart, Bounded = WorldHasBounds_OnRebuild, GBounds = WorldBoundsOnRebuild, Lock = CollisionMeshAccessLock]
|
||||
{
|
||||
//CollisionShareable无效则返回
|
||||
if (!CollData.IsValid())
|
||||
{
|
||||
if (Completion.IsValid())
|
||||
@@ -1542,9 +1543,8 @@ void AShaderWorldActor::CollisionCPU()
|
||||
}
|
||||
|
||||
FScopeLock CollisionMeshArrayAccess(Lock.Get());
|
||||
|
||||
//Brush相关
|
||||
double CollisionWidth = CollData->CollisionResolution * (CollData->VerticePerPatch - 1);
|
||||
|
||||
TMap<FIntVector, FVector> BrushRedraws;
|
||||
for (const FBox2d& B : BrushScope)
|
||||
{
|
||||
@@ -1571,7 +1571,6 @@ void AShaderWorldActor::CollisionCPU()
|
||||
SWorldBounds.Max *= 100.0;
|
||||
|
||||
TSet<FIntVector> ExternalCollisionsBounds;
|
||||
|
||||
for (const ShaderWorld::FVisitor& SingleCamLoc : VisitorLocations)
|
||||
{
|
||||
if (SingleCamLoc.Bounds.IsValid)
|
||||
@@ -1583,6 +1582,7 @@ void AShaderWorldActor::CollisionCPU()
|
||||
CollData->MultipleCamera.Empty();
|
||||
CollData->LocRefs.Empty();
|
||||
|
||||
//遍历所有Visitor,之后往CollisionShareable中的LocRefs、MultipleCamera添加计算结果。
|
||||
for (const ShaderWorld::FVisitor& SingleCamLoc : VisitorLocations)
|
||||
{
|
||||
if (SingleCamLoc.Bounds.IsValid)
|
||||
@@ -1689,6 +1689,7 @@ void AShaderWorldActor::CollisionCPU()
|
||||
WorldBounds.Min *= 100.0;
|
||||
WorldBounds.Max *= 100.0;
|
||||
|
||||
//根据ShaderWorld边界,来维护UsedCollisionMesh、CollisionMeshData、CollisionMeshToCreate、CollisionMeshToRenameMoveUpdate、GroundCollisionLayout
|
||||
for (auto& ExternalBounds : ExternalCollisionsBounds)
|
||||
{
|
||||
FIntVector LocMeshInt = ExternalBounds;
|
||||
@@ -1735,6 +1736,7 @@ void AShaderWorldActor::CollisionCPU()
|
||||
}
|
||||
}
|
||||
|
||||
//根据ShaderWorld MultipleCamera,来维护UsedCollisionMesh、CollisionMeshData、CollisionMeshToCreate、CollisionMeshToRenameMoveUpdate、GroundCollisionLayout
|
||||
for (auto& Elem : CollData->MultipleCamera)
|
||||
{
|
||||
FIntVector& SingleCam = Elem.Key;
|
||||
@@ -1796,6 +1798,7 @@ void AShaderWorldActor::CollisionCPU()
|
||||
}
|
||||
}
|
||||
|
||||
//开始下一轮循环,bPreprocessingCollisionUpdate 设置为false
|
||||
if (Completion.IsValid())
|
||||
(*Completion.Get()) = false;
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ rating: ⭐
|
||||
- [UE5.3] PSO Cache&PreCache 源码阅读:https://zhuanlan.zhihu.com/p/679832250
|
||||
- [UE5.3] PSO Cache&PreCache 源码阅读(二):https://zhuanlan.zhihu.com/p/681803986
|
||||
- Unreal Engine 5.2 MeshPass拓展:https://zhuanlan.zhihu.com/p/671423486
|
||||
- 优化UE5的PSO卡顿:FileCache,PreCache和异步PSO https://zhuanlan.zhihu.com/p/1898646962561094034
|
||||
# 执行链
|
||||
- FGraphEventArray UPrimitiveComponent::PrecachePSOs()
|
||||
- void UMaterialInterface::InitDefaultMaterials()
|
||||
|
@@ -188,6 +188,7 @@ rating: ⭐⭐⭐
|
||||
1. [ ] https://www.bilibili.com/video/BV1L5kdYFEXc/?spm_id_from=333.1007.tianma.4-1-11.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
|
||||
2. [ ] 风格化水面资产 https://item.taobao.com/item.htm?id=865360489543&pisk=gLHsX7NMiNb1gB7njFKURXly5Dwb5q9y1iZxqmBNDReTkigKDtQA6-FLJorOMSU2sqNju2VxQRoZRGDIPtWwSCmAh-yvzUJyUcman-Lyk8kOUGq4mNUAurCKv-rjPdNAXcmgnrIFkQlKjZg5RK5YDrKQpor7k-EYW9KQcuaYHPFAJ6E8JrexkSIdJuZ5MZCTHkKQju5OBoeYvMEaVtBtk-KIvyqxnDXQDCZ-fHz1qUDkpeKgJtBxdlNpTcUKrr-4i5TjbyXvy1Zg1coTRtBxKXkPllz9ZMz0QPDbfqvlIRFjTAVoQeBsl20KBSDp8B00QuV-MD-lTPDIQvFsCU1uCX3nd5DOWhqtsqDbQx71hDMb57HTOKx0CDEYdbneq6zidAkL1AT5ZPMiDjPItNTUuboEBWgJ89g0GXkgZA8dC4IyzTz7sJ5fA7XbAz-BAsf0xzPwqJ_edaNTxlTyAH_Gi5E3AmtBAsDg6kqF6HtCWc1..&spm=a21xtw.29178619.product_shelf.74.41727d6dRCDvul
|
||||
24. [ ] 添加Debug View https://zhuanlan.zhihu.com/p/668782106
|
||||
1. [ ] UE5.5 自定义/扩展缓冲可视化调试功能 https://zhuanlan.zhihu.com/p/16314329507
|
||||
25. [ ] [_UE5_ Shader Print系统](https://zhuanlan.zhihu.com/p/637929634)
|
||||
26. [ ] GBufferView实现。
|
||||
27. [ ] Toon Debug模式,可以让美术在材质进行进行简单的光照计算。
|
||||
|
Reference in New Issue
Block a user