OpacityComponent does not blend a GaussianSplatComponent on iOS/macOS, behaves correct on visionOS

I have a RealityKit scene with one container entity and two children: an entity carrying a GaussianSplatComponent, and a plain Entity with a ModelComponent (an unlit white cube). A single OpacityComponent goes on the container, so one value covers both children in the same frame.

container.components.set(OpacityComponent(opacity: value))

On visionOS 27 this does exactly what I expect: both children fade together, continuously, across the whole range.

On iOS 27 and Mac Catalyst 27 the cube fades continuously but the splat does not. It renders at full opacity for every value above 0 and disappears at exactly 0. At 0.01 the cube beside it is already almost invisible while the splat is still drawing at full strength, so entity opacity behaves as a visibility switch on a splat rather than as a blend factor.

Things I have already ruled out:

  • Not a propagation issue. Moving the OpacityComponent off the container and onto the splat's own entity (and the cube's own entity, to keep the A/B) changes nothing.
  • Not the container failing to receive the value. The cube under the same component, in the same frame, fades correctly.
  • Not the splat data. Per-splat alpha through GaussianSplatResource's opacity buffer is honoured, and projectionMode, sortingMode, scaleActivation and opacityActivation all take effect.
  • Not a difference in scene construction per platform. The same file builds the container on all three platforms in my sample.

Confirmed on:

  • iOS 27.0 (24A5418b), iPhone 16 Pro — reproduces
  • macOS 27.0 (26A5416b), Mac Catalyst — reproduces
  • visionOS 27.0 (24M5326g), Apple Vision Pro — correct

Filed as FB24431214 with a sample project that builds for all three from one target.

Would be great to see this fixed!

Hey @arthurfromberlin,

Thanks for filing this issue through Feedback Assistant and for following up on the behavior experienced on the latest beta. I have confirmed that this has been routed to the correct team.

For those following along, even though we're aware of this issue, we still encourage you to open a bug report, please reference FB24431214 in the report, and post the FB number here once you do. Filing the bug report you to get notified when it is resolved.

Bug Reporting: How and Why? explains how you can open a bug report.

Thanks,
Michael

OpacityComponent does not blend a GaussianSplatComponent on iOS/macOS, behaves correct on visionOS
 
 
Q