Posts

Post not yet marked as solved
7 Replies
2.2k Views
Hello,I'm trying to render a point cloud using SceneKit (ultimately for ARKit). However, I'm finding the pointSize (and minimumPointScreenSpaceRadius) properties are ignored when trying to modify the SCNGeometryElement. No matter what pointSize I put in, the points are the same size. This is roughly how my code is laid out. I'm wondering if I'm doing something wrong with my GeometryElement setup? var index: Int = 0 for x_pos in stride(from: start , to: end, by: increment) { for y_pos in stride(from: start , to: end, by: increment) { for z_pos in stride(from: start , to: end, by: increment) { let pos:SCNVector3 = SCNVector3(x: x_pos, y: y_pos, z: z_pos) positions.append(pos) normals.append(normal) indices.append(index) index = index + 1 } } } let pt_positions : SCNGeometrySource = SCNGeometrySource.init(vertices: positions) let n_positions: SCNGeometrySource = SCNGeometrySource.init(normals: normals) let pointer = UnsafeRawPointer(indices) let indexData = NSData(bytes: pointer, length: MemoryLayout<Int32>.size * indices.count) let elements = SCNGeometryElement(data: indexData as Data, primitiveType: .point, primitiveCount: positions.count, bytesPerIndex: MemoryLayout<Int>.size) elements.pointSize = 10.0 //being ignored elements.minimumPointScreenSpaceRadius = 10 //also being ignored let pointCloud = SCNGeometry (sources: [pt_positions, n_positions], elements: [elements]) pointCloud.firstMaterial?.lightingModel = SCNMaterial.LightingModel.constant let ptNode = SCNNode(geometry: pointCloud) scene.rootNode.addChildNode(ptNode)
Posted
by pj_mukh.
Last updated
.