MediaCapture (Scene Viewport Capture) × custom SceneViewExtension (Tonemap hook) used together causes the MediaViewPort Capture output to be black / does not occur with RenderTarget Capture

Issue

・In the Scene Viewport Capture preview, the output turns black just by registering a custom SVE to Tonemap with an AfterPass callback.

・Even when the SVE adds no render pass and simply returns the input as-is in the callback, the output still turns black.

・The Editor viewport and PIE display normally.

・With RenderTarget Capture (CaptureTextureRenderTarget2D), the same SVE enabled does not turn black.

・Changing the SVE hook target to FXAA or MotionBlur restores normal preview in Scene Viewport Capture.

Questions

  1. When using Scene Viewport Capture × Tonemap (AfterPass) together, is the black preview a known limitation/specification? (Could this be a bug?)
  2. What is the recommended hook location for SVE? If there are more stable options than Tonemap (e.g., FXAA / MotionBlur / SSRInput), please share them with reasons.
  3. Are there any implementation requirements when using Scene Viewport Capture together with SVE?
  • For example: Must the AfterPass callback always generate an output? Any constraints on the texture returned? Any preview-specific caveats?
  • Additionally, in the Editor environment, please describe the difference in capture sources between Scene Viewport Capture and RenderTarget Capture, and any cautions when using them together.

再現手順

  1. Create a new project in UE5.4 and place a CineCameraActor in the level.
  2. Start Scene Viewport Capture from the preview UI (equivalent to SMediaFrameworkCaptureCameraViewportWidget).
  3. Enable an SVE that overrides ISceneViewExtension::SubscribeToPostProcessingPass and registers an AfterPass callback only for Tonemap.

Result: The preview becomes black.

Changing the hook to FXAA or MotionBlur → No black; displays normally.

Switching the capture method to RenderTarget Capture → No black; displays normally.

Expected Behavior

In Scene Viewport Capture preview, merely registering a no-op AfterPass callback to Tonemap should not result in a black screen.

Hi,

thanks for reaching out. I have not been able to reproduce the issue so far and I’m not sure if I’m missing a step. Would you be able to provide a simple project that shows the issue of having black output?

Thanks,

Sam

Thank you for replying

​This is the minimal project that I was able to reproduce in my environment.

As indicated by the comments in ViewFrustumSVE.cpp

- Works correctly in phases other than Tonemap

- Works when the line below is commented out

Additionally, under the same conditions, the Level Sequencer play button stops functioning. Animations of placed Actors no longer play.

Thanks

Hi,

thanks a lot for the repro project. I started investigating and found that this is a known issue which was also reported in a few other UDN cases, which contain information that may help answer some of your questions:

[Content removed] This includes a bug report with a possible workaround by adding a post processing material.

[Content removed]

[Content removed] This includes a workaround from Epic. Based on the findings in this case, I noticed that changing the anti-aliasing mode in the project settings from TSR to FXAA brought the image back.

Hopefully the above helps. Let me know if you have any further questions.

Thanks,

Sam