How to check if a CSS2DObject is occluded by other objects?

What I have so far

I am trying to implement annotations similar to those which can be seen at Currently I use CSS2DObjects and the CSS2DRenderer to display annotations. Every annotation-object is added to a Mesh (or a Bone of a SkinnedMesh) to guarantee the relative position of an annotation stays the same in case the parent Mesh is animated. This works as expected.

What I want

The annotations are always visible, even if they are occluded by other objects. I want to change the css opacity of the CSS2DObject element if an annotation is occluded (see e.g. or, but I do not know how to find that out.
I already tried the solution from, but the result is not accurate enough for complex models and does not work with animated Meshes.
I also tried to use the Raycaster but the performance gets too bad with multiple annotations or complex models. Besides that, this approach also does not work with animated Meshes.

I would appreciate any suggestion. Thanks in advance.