Draw a grid on the floor using augmented reality and eventually place objects on it.

Let’s see how it works
Create a new project, as usual, choose “Augmented Reality App“.
Few things to add in order to detect plane, first in viewDidLoad, add:
sceneView.autoenablesDefaultLighting = true
Next, in the viewWillAppear set in the configuration the plane detection:
configuration.planeDetection = .horizontal
Cool, you’re are ready to detect planes.
Draw the grid on plane
Implement the ARSCNViewDelegate to draw the grid:
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) { }
Save the grid image:
And draw the grid on the screen (floor):
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) { // plane detected if anchor is ARPlaneAnchor { let planeAnchor = anchor as! ARPlaneAnchor let plane = SCNPlane(width: CGFloat(planeAnchor.extent.x), height: CGFloat(planeAnchor.extent.z)) let planeNode = SCNNode() planeNode.position = SCNVector3(x: planeAnchor.center.x, y: 0, z: planeAnchor.center.z) planeNode.transform = SCNMatrix4MakeRotation(-Float.pi/2, 1, 0, 0) // add the grid as material let gridMaterial = SCNMaterial() gridMaterial.diffuse.contents = UIImage(named: "art.scnassets/grid.png") plane.materials = [gridMaterial] planeNode.geometry = plane // place the grid when needed node.addChildNode(planeNode) } else { return } }
Enjoy.
Latest posts by Alberto Pasca (see all)
- Swift – Simple full screen loader - 11 August 2022
- macOS – Disable microphone while typing - 11 April 2022
- iOS – Secure app sensitive information - 25 March 2022