UPDATE: This turned out to be a case of user error.
The camera in the SceneKit scene was having the projection matrix overwritten by the projection matrix of the ARKit frame camera in order to keep in sync (we can't use ARSCNView for our needs).
However, overwriting the projection matrix changed the near/far which meant the shadows weren't renderered correctly. Using the alternative method:
node.camera.projectionTransform = SCNMatrix4(frame.camera.projectionMatrix(for: .landscapeRight, viewportSize: CGSize(width: width, height: height), zNear: 0.1, zFar: 1000))
Topic:
Graphics & Games
SubTopic:
Metal
Tags: