我希望将ARCamera的旋转应用于3D节点,以便该节点始终面对相机。如何在Objective-C中实现此代码?
发布于 2018-03-07 20:28:57
您可以通过使用SCNBillboardConstraint使SCNNode面向ARCamera
SCNBillboardConstraint对象会自动调整节点的方向,以便其局部z轴始终指向当前用于渲染场景的pointOfView节点。例如,可以使用布告牌约束来使用二维精灵图像而不是三维几何体高效地渲染场景的某些部分-通过将精灵映射到受布告牌约束影响的平面上,精灵将保持其相对于查看器的方向。若要将约束附加到SCNNode对象,请使用其约束特性。
目标C:
SCNBillboardConstraint *lookAtConstraint = [SCNBillboardConstraint billboardConstraint];
node.constraints = @[lookAtConstraint];Swift:
let lookAtConstraint = SCNBillboardConstraint()
node.constraints = [lookAtConstraint]如果希望SCNNode面向另一个节点,则可以使用SCNLookAtConstraint
例如,可以使用注视约束来确保摄影机或聚光灯始终跟随游戏角色的移动。若要将约束附加到SCNNode对象,请使用其约束特性。节点指向其局部坐标系的负z轴方向。该轴定义包含摄影机的节点的视图方向、包含聚光灯或平行光的节点的照明方向,以及节点几何体和子节点的方向。当场景工具包对注视约束求值时,它会更新受约束节点的变换属性,以便节点的负z轴指向约束的目标节点。
目标C:
SCNLookAtConstraint * lookAtNode = [SCNLookAtConstraint lookAtConstraintWithTarget:secondNode];
fistNode.constraints = @[lookAtNode];Swift:
let lookAtConstraint = SCNLookAtConstraint(target: secondNode)
firstNode.constraints = [lookAtConstraint]发布于 2020-02-07 10:50:52
我用过
let lookAtConstraint = SCNBillboardConstraint()
node.constraints = [lookAtConstraint]当3D头部扫描模型被用户旋转时,SceneKit平行光节点总是照射来自用户视图的光。如果没有此选项,平行光将锁定在面部模型的前面,然后在头部的后面总是有一个暗影。
https://stackoverflow.com/questions/49151332
复制相似问题