Description

Here is a work around

	bool FTriangleMeshSweepVisitor::VisitSweep(const TSpatialVisitorData<int32>& VisitData, FRealSingle& CurDataLength)
	{
...
		if (CullsBackFaceSweepsCode != 0)
		{
			if (VectorMaskBits(IsBackFace))
			{
#if 0
				// Don't cull the back face if there is a chance that we are initially overlapping.
				const VectorRegister4Float MinBounds = VectorMin(VectorMin(A, B), C);
				const VectorRegister4Float MaxBounds = VectorMax(VectorMax(A, B), C);
				FAABBVectorized TriangleAABB(MinBounds, MaxBounds);
				
				if (!GeometryAABBTriangleSpace.Intersects(TriangleAABB))
				{
					return true;
				}
#else
				return true;
#endif
			}
		}

Steps to Reproduce
  1. Create a project with thirdpersontemplete
  2. Enter modeling mode
  3. Create a large mesh
  4. Place the mesh to cover the StartPoint in the level
  5. Quit modeling mode
  6. Make sure the mesh has UseComplexAsSimple setting
  7. Start PIE
  8. Move character to pass through the mesh

Result:

The characeter can not pass through back faces of the mesh

Expected Result:

The character can pass through back faces of the mesh (has triangle mesh collision ). It is compatible behavior with the engine before 5.0.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-174277 in the post.

1
Login to Vote

Unresolved
ComponentUE - Simulation - Physics - Query
Affects Versions5.1
Target Fix5.5
CreatedJan 17, 2023
UpdatedFeb 27, 2024