BloomComponent (RealityKit 27) lags behind the geometry that produces it while the camera moves. The halo trails the emissive geometry by roughly one to three frames (eyeballed) and snaps back once the camera stops. Video attached — it's obvious at normal playback speed.
visionOS renders the identical scene correctly. Only iOS and macOS / Mac Catalyst lag, which points at the non-visionOS compositing path rather than the effect itself.
Filed as FB23960052. This should be fixed before 27 ships — bloom is unusable for anything with a moving camera in its current state on those platforms.
Ruled out:
- Scope. Identical with BloomComponent(scope: .hierarchical) and .unbounded. .unbounded computes no per-entity screen-space bounds, so stale bounds are not the cause.
- Input handling. The camera is RealityKit's own .realityViewCameraControls(.orbit) — no gesture code of mine involved.
- Per-frame component writes. BloomOptionsComponent is set once and untouched during the drag.
- Geometry and camera transform. Both track perfectly; only the glow lags.
Reproducer is ~130 lines, no assets — five emissive spheres inside a large inward-facing dark sphere:
var material = PhysicallyBasedMaterial()
material.baseColor = .init(tint: .black)
material.emissiveColor = .init(color: .cyan)
material.emissiveIntensity = 4
// ...
root.components.set(BloomComponent(scope: .unbounded))
var options = BloomOptionsComponent()
options.strength = 1
options.threshold = 1
options.blurRadius = 1
root.components.set(options)
shown in:
RealityView { content in
content.camera = .virtual
content.add(root)
}
.realityViewCameraControls(.orbit)
Xcode 27.0 beta 4, iOS 27.0 SDK, Apple Silicon. Affected: iOS 27, macOS 27 / Mac Catalyst 27. Not affected: visionOS 27 (immersive space).
Full project and screen recording attached to my radar.