노란 점 이외도 낼 수 있다! ? ARPointCloud를 사용자 정의하여 색상과 모양을 변경해 봅시다.
sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
쓰면 노란 꽃가루와 같은 featurePoints를 쉽게 볼 수 있습니다.
이 기사에서는 이 점 구름의 모양을 사용자 정의해 봅시다.
맞춤 완성 이미지
빨간 점
빨간 콘
빨간 점의 ARPointCloud 만드는 법
Node 만들기
빨간 점이라면
let node = SCNNode()
let geometry = SCNSphere(radius: 0.001)
geometry.firstMaterial?.diffuse.contents = UIColor.red
node.geometry = geometry
return node
빨간 콘이라면
let node = SCNNode()
let geometry = SCNCone(topRadius: 0.001, bottomRadius: 0.01, height: 0.03)
geometry.firstMaterial?.diffuse.contents = UIColor.red
node.geometry = geometry
return node
점 구름 표시
우선 sceneView.sesion을 ARSessionDelegate에 준거시킨다.
featurePoints를 저장하기 위해 변수를 만들 때.
private var featurePoints: [SCNNode] = []
override func viewDidLoad() {
super.viewDidLoad()
sceneView.session.delegate = self
}
ARSessionDelegate의 session(didUpdate frame
메서드에서 ARFrame을 매번 가져올 수 있으므로 rawFeaturePoints( ARPointCloud )를 가져오고 해당 포인트에서 각 점의 xyz 좌표를 가져올 수 있습니다.
extension ARPointCloudViewController: ARSessionDelegate {
func session(_ session: ARSession, didUpdate frame: ARFrame) {
/ ARFrameのrawFeaturePointsのpointsで座標を取得
guard let pointPositions = frame.rawFeaturePoints?.points else {
return
}
// 前の点群Nodesを取り除く
self.featurePoints.forEach { $0.removeFromParentNode() }
// 新しい点群Nodes作成
let featurePointNodes: [SCNNode] = pointPositions.map { position in
let node = sphereNode.clone()
node.position = SCNVector3(position.x, position.y, position.z)
return node
}
// 新しい点群Nodesを貼り付け
featurePointNodes.forEach { sceneView.scene.rootNode.addChildNode($0) }
// 一旦保存
self.featurePoints = featurePointNodes
}
}
완성
Node를 커스터마이즈하여 다양한 포인트를 만들어 봅시다.
빨간 점
빨간 콘
샘플 코드
htps : // 기주 b. 코 m / k 보 y-시 lゔぇrgym / 아 의 ARPointCloud에 있습니다!
참고문헌
Reference
이 문제에 관하여(노란 점 이외도 낼 수 있다! ? ARPointCloud를 사용자 정의하여 색상과 모양을 변경해 봅시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kboy/items/605db63e82d514597996
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Node 만들기
빨간 점이라면
let node = SCNNode()
let geometry = SCNSphere(radius: 0.001)
geometry.firstMaterial?.diffuse.contents = UIColor.red
node.geometry = geometry
return node
빨간 콘이라면
let node = SCNNode()
let geometry = SCNCone(topRadius: 0.001, bottomRadius: 0.01, height: 0.03)
geometry.firstMaterial?.diffuse.contents = UIColor.red
node.geometry = geometry
return node
점 구름 표시
우선 sceneView.sesion을 ARSessionDelegate에 준거시킨다.
featurePoints를 저장하기 위해 변수를 만들 때.
private var featurePoints: [SCNNode] = []
override func viewDidLoad() {
super.viewDidLoad()
sceneView.session.delegate = self
}
ARSessionDelegate의
session(didUpdate frame
메서드에서 ARFrame을 매번 가져올 수 있으므로 rawFeaturePoints( ARPointCloud )를 가져오고 해당 포인트에서 각 점의 xyz 좌표를 가져올 수 있습니다.extension ARPointCloudViewController: ARSessionDelegate {
func session(_ session: ARSession, didUpdate frame: ARFrame) {
/ ARFrameのrawFeaturePointsのpointsで座標を取得
guard let pointPositions = frame.rawFeaturePoints?.points else {
return
}
// 前の点群Nodesを取り除く
self.featurePoints.forEach { $0.removeFromParentNode() }
// 新しい点群Nodes作成
let featurePointNodes: [SCNNode] = pointPositions.map { position in
let node = sphereNode.clone()
node.position = SCNVector3(position.x, position.y, position.z)
return node
}
// 新しい点群Nodesを貼り付け
featurePointNodes.forEach { sceneView.scene.rootNode.addChildNode($0) }
// 一旦保存
self.featurePoints = featurePointNodes
}
}
완성
Node를 커스터마이즈하여 다양한 포인트를 만들어 봅시다.
빨간 점
빨간 콘
샘플 코드
htps : // 기주 b. 코 m / k 보 y-시 lゔぇrgym / 아 의 ARPointCloud에 있습니다!
참고문헌
Reference
이 문제에 관하여(노란 점 이외도 낼 수 있다! ? ARPointCloud를 사용자 정의하여 색상과 모양을 변경해 봅시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kboy/items/605db63e82d514597996
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // 기주 b. 코 m / k 보 y-시 lゔぇrgym / 아 의 ARPointCloud에 있습니다!
참고문헌
Reference
이 문제에 관하여(노란 점 이외도 낼 수 있다! ? ARPointCloud를 사용자 정의하여 색상과 모양을 변경해 봅시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kboy/items/605db63e82d514597996
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(노란 점 이외도 낼 수 있다! ? ARPointCloud를 사용자 정의하여 색상과 모양을 변경해 봅시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kboy/items/605db63e82d514597996텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)