5.8.1 Foliage, CastRaytracedShadow, bEvaluateWorldPositionOffsetInRayTracing 버그

bEvaluateWorldPositionOffsetInRayTracing 이 True임에도 불구하고 폴리지의 경우 레이트레이싱 WPO평가가 이루어지지 않습니다.

[Attachment Removed]

안녕하세요.

나나이트를 사용하지 않을 때 레이 트레이싱에 WPO 적용을 위해서는 콘솔 변수 r.RayTracing.Geometry.InstancedStaticMeshes.EvaluateWPO 값이 -1 또는 1이어야 합니다. 기본값 0에서는 컴포넌트 설정과 무관하게 레이 트레이싱에 WPO가 적용되지 않으며, -1에서는 컴포넌트의 bEvaluateWorldPositionOffsetInRayTracing 설정을 따르고 1에서는 설정과 무관하게 WPO를 사용하는 모든 메시에 적용됩니다.

나나이트 사용 시 위 콘솔 변수가 적용되지 않으므로 Nanite를 비활성화한 뒤 앞의 조치를 적용하거나 나나이트를 유지하면서 레이 트레이싱에 WPO 적용하기 위해서는 인스턴스를 1개만 사용해야 합니다. 현재 엔진에서는 나나이트, ISM, WPO의 조합을 지원하지 않으므로 인스턴스가 2개 이상일 때에는 그림자가 나타나지 않습니다.

NaniteResources.cpp

// NOTE: For now, only single-instance dynamic ray tracing is supported
if (InstanceCount > 1)
{
	static bool bWarnOnce = true;
	if (bWarnOnce)
	{
		bWarnOnce = false;
		UE_LOGF(LogStaticMesh, Warning, "Nanite instanced static mesh using World Position Offset not supported in ray tracing yet (%ls).", *StaticMesh->GetPathName());
	}
	return;
}

아래 변경사항을 적용하시면 적용하시면 인스턴스가 2개 이상일 때 그림자가 사라지는 대신 WPO가 적용되지 않은 그림자가 나타나도록 할 수 있습니다.

CL 57431172

https://github.com/EpicGames/UnrealEngine/commit/3b7b4e67c60c0e887beab37be3f74ae0611076ff

감사합니다.

[Attachment Removed]