camera.transform 和 pointOfView 有啥区别
Posted
技术标签:
【中文标题】camera.transform 和 pointOfView 有啥区别【英文标题】:What is the difference between camera.transform and pointOfViewcamera.transform 和 pointOfView 有什么区别 【发布时间】:2018-09-01 03:16:15 【问题描述】:对于将物体放在相机前面,我看到有两种方法:使用camera.transform
和pointOfView
camera.transform 来自SCNView
和scnView.session.currentFrame.camera.transform
https://developer.apple.com/documentation/arkit/arcamera
相机在世界坐标空间中的位置和方向。
这里是如何使用它
var translation = matrix_identity_float4x4
translation.columns.3.z = -2
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
pointOfView 来自 SCNView
和 scnView.pointOfView
https://developer.apple.com/documentation/scenekit/scnscenerenderer/1523982-pointofview
查看场景内容以进行渲染的节点
这里是如何使用的,使用convertPosition
转换为世界坐标
let camera = scnView.pointOfView!
let position = SCNVector3(x: 0, y: 0, z: -2)
node.position = camera.convertPosition(position, to: nil)
这两个有什么区别?两者似乎都指的是相机
【问题讨论】:
【参考方案1】:session
属性由ARSCNView
公开,而不是由SCNView
直接公开。 ARKit 使用其会话的相机变换来驱动 SceneKit 场景的视点,因此在这种情况下它们是匹配的。但并不是每个 SceneKit 应用程序都使用 ARKit,在这种情况下,定位视点是开发人员的责任。
【讨论】:
以上是关于camera.transform 和 pointOfView 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章