Chapter 16: Creating Assets for Face-Based AR
前言
大綱
Creating 3D Content
Creating the Glasses class
import ARKit
import SceneKit
class Glasses: SCNNode {
let occlusionNode: SCNNode
init(geometry: ARSCNFaceGeometry) {
geometry.firstMaterial!.colorBufferWriteMask = []
occlusionNode = SCNNode(geometry: geometry)
occlusionNode.renderingOrder = -1
super.init()
addChildNode(occlusionNode)
// 將scn讀取進來
guard let url = Bundle.main.url(forResource: "glasses",
withExtension: "scn",
subdirectory: "Models.scnassets")
else {
fatalError("Missing resource")
}
// scn轉成node
let node = SCNReferenceNode(url: url)!
node.load()
addChildNode(node)
}
required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) has not been implemented")
}
// - Tag: ARFaceAnchor Update
func update(withFaceAnchor anchor: ARFaceAnchor) {
let faceGeometry = occlusionNode.geometry as! ARSCNFaceGeometry
faceGeometry.update(from: anchor.geometry)
}
}Adding the glasses option
Creating Pig

Creating the Pig class
Last updated