How to calculate an actors visibility/occlusion from the player camera down to the percentage?

I am creating a feature for my game that requires me to have an actors visibility/occlusion percentage from the player camera.
This isn’t going to be run on Tick or every frame. It’s a player-triggered action, and it can be slow since I won’t need the results until the player has cleared the level.
It needs to be scalable since I’m not sure how many actors could need to be checked in that single frame (20+ is possible).
I just need it not to hitch or eat frames.

Things I’ve Tried:

  1. Creating a scene capture component for each actor I want to analyze, rendering them solo, and comparing the depth with the depth of the original photo (Capturing the scene that many times in a single frame is too expensive).

  2. Converting the actors bounds into screen space and tracing toward every pixel in those 2d bounds (WAY too many traces).

  3. Using custom depth and stencils (Stencil overlapping kills this idea).

Dumb Ideas I haven’t all the way thought through due to lack of knowledge:

  1. Implement a shader and use raycasting or something?

  2. Somehow gather the information by creating a SceneViewExtension and doing something before or after the DepthPass/BasePass?

I’ve broken the problem down into two parts.

The Fast Part:
Capture the scene with the scene capture.
Gather the scene data.
Note: I need to gather/cache data here that could change by the next frame.

The Slow Part:
Make calculations against the scene data.
Return the data.
Note: Speed isn’t necessary here since I have until the level is closed.

I have the slow part figured out, but I have no idea how to do the fast part fast without performance issues.