SceneCapture2Dを使用するとLumen、特に反射でフリッカー現象がおきます

いつもお世話になっております。

<br/>

SceneCapture2Dを使用するとLumenの特に反射でフリッカー現象がおきています。

UE5.7ではおきていなかったので5.8での変更が影響していると思われます。

<br/>

r.LumenScene.SurfaceCache.AtlasSize

でキャッシュのサイズを大きくすると若干緩和するのでSceneCapture2Dがキャッシュを書き換えてしまっているのかもしれないです。

<br/>

SceneCapture2DのGlobalIlluminationメソッドをLumenにすると

改善することが分かったのでそこまで困ってはいないですが可能であればCaptureのLumenは切りたいです。

<br/>

よろしくお願いします。

[Attachment Removed]

お世話になっております。

本件お時間を頂き申し訳ございません​

再現方法は異なるものの以下Issueとして報告されている問題と同様とかと思われますが、現状修正できていない問題となっておりました。

UE-383250 Multiplatform - Lumen view mode flickers when another viewport is set to any view mode other than “lit”

​

調査を行ったところ使用していない場合の消費メモリを削減する実装により、別ビューで共有されている場合にリセットされてしまうような挙動となってしまっているようでして、回避方法としましては削減対応を分岐に入った後に開放する事で対応できる見込みです。

\Engine\Source\Runtime\Renderer\Private\Lumen\LumenSurfaceCacheFeedback.cpp

void FDeferredShadingSceneRenderer::FinishGatheringLumenSurfaceCacheFeedback
...
	if (FrameTemporaries.NumFramesAccumulatedHistoryAtlas && FrameTemporaries.NumFramesAccumulatedHistoryAtlas->HasBeenProduced())
	{
		GraphBuilder.QueueTextureExtraction(FrameTemporaries.NumFramesAccumulatedHistoryAtlas, &LumenSceneData.NumFramesAccumulatedHistoryAtlas);
	}
 
	// 下部コメントアウト内の処理を以下に追加
	if (FrameTemporaries.IndirectLightingAtlas && FrameTemporaries.RadiosityNumFramesAccumulatedAtlas && LumenRadiosity::IsEnabled(*View.Family))
	{
		GraphBuilder.QueueTextureExtraction(FrameTemporaries.IndirectLightingAtlas, &LumenSceneData.IndirectLightingAtlas);
		GraphBuilder.QueueTextureExtraction(FrameTemporaries.RadiosityNumFramesAccumulatedAtlas, &LumenSceneData.RadiosityNumFramesAccumulatedAtlas);
	}
	else
	{
		LumenSceneData.IndirectLightingAtlas = nullptr;
		LumenSceneData.RadiosityNumFramesAccumulatedAtlas = nullptr;
	}
}
//以下コメントアウト
//FLumenSceneData* LumenSceneData = Scene->GetLumenSceneData(View);
//if (LumenSceneData)
//{
//	if (FrameTemporaries.IndirectLightingAtlas && FrameTemporaries.RadiosityNumFramesAccumulatedAtlas && LumenRadiosity::IsEnabled(*View.Family))
//	{
//		GraphBuilder.QueueTextureExtraction(FrameTemporaries.IndirectLightingAtlas, &LumenSceneData->IndirectLightingAtlas);
//		GraphBuilder.QueueTextureExtraction(FrameTemporaries.RadiosityNumFramesAccumulatedAtlas, &LumenSceneData->RadiosityNumFramesAccumulatedAtlas);
//	}
//	else
//	{
//		LumenSceneData->IndirectLightingAtlas = nullptr;
//		LumenSceneData->RadiosityNumFramesAccumulatedAtlas = nullptr;
//	}
//}

お手数おかけしますが上記対応をお試しいただけますと幸いです。

よろしくお願いいたします。​

[Attachment Removed]

ありがとうございます。

現在はエンジン改造をできない状態なのですぐには試せないのですが

どこかのタイミングで試してみようと思います。ありがとうございます。

[Attachment Removed]

ご確認ありがとうございます。

本件はクローズとさせて頂きますが、また実際に試した際に問題等ありましたらお気軽にご相談いただければと思います。

お手数おかけしますが、よろしくお願いいたします。

[Attachment Removed]