, , - ARKit.
First, I created a square image in Adobe Illustrator, which had green edges but a transparent center. This is called "outlinedFace."
Then I created SCNNode (Swift 4) as follows:
import UIKit
import ARKit
class CubeNode: SCNNode {
private var faceArray = [SCNMaterial]()
private let FACE_OUTLINE = "outlinedFace"
init(width: CGFloat = 0.2, height: CGFloat = 0.2, length: CGFloat = 0.2) {
super.init()
self.geometry = SCNBox(width: width, height: height, length: length, chamferRadius: 0)
for _ in 0 ..< 6{
let face = SCNMaterial()
face.diffuse.contents = UIImage(named: FACE_OUTLINE)
face.isDoubleSided = true
face.lightingModel = .constant
faceArray.append(face)
}
self.geometry?.materials = faceArray
self.rotation = SCNVector4Make(0, 1, 0, .pi / 4)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
The key here is to make the content double-sided.
It works wonderfully for me!
source
share