[AR开发]如何在放置模型时,让正面始终面向观众?

2021-01-20  本文已影响0人  沈枫_SerenF

现在有个场景,在找到平面后,如果再次转动镜头,平面跟着镜头走,类似于宜家的app(Ikea place),此时放置模型,会出现正面未朝向观众的问题,那如何在放置模型时,无论手机的任意移动和转向,都能保证模型始终“面向观众”呢?

其实每当点击屏幕,模型都会被放到点击点对应的这个平面上,这个过程可以抽象成通过相机视口发出了一条射线撞击这个平面,如下图,转动镜头,平面跟着移动,那相机节点与点击点的射线就有了个角度,这个角度就是模型在被放置时,正面偏移镜头的角度,所以需要模型旋转:

guard let camera = sceneView.session.currentFrame?.camera else { return }
let rotate = simd_float4x4(SCNMatrix4MakeRotation(camera.eulerAngles.y, 0, 1, 0))
virtualObject.simdTransform = rotate
上一篇下一篇

猜你喜欢

热点阅读