vault backup: 2025-07-16 15:22:16

This commit is contained in:
2025-07-16 15:22:16 +08:00
parent 65d043ec2b
commit f8f930a09f

View File

@@ -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;
}