Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 阿基特&x2013;在墙后隐藏物体_Ios_Swift_Xcode_Arkit - Fatal编程技术网

Ios 阿基特&x2013;在墙后隐藏物体

Ios 阿基特&x2013;在墙后隐藏物体,ios,swift,xcode,arkit,Ios,Swift,Xcode,Arkit,我有一个AR应用的想法,我注意到在大多数AR应用中,对象都不是通过墙隐藏的,比如我把AR肖像钉在房间里,只有我去那里才能看到,而不是通过墙 我没有AR方面的经验,只是即将学习 谢谢。这是一种简单的方法,您必须检测平面(在您的情况下是墙)并设置 node.geometry.firstMaterial?.colorBufferWriteMask = [] node.renderingOrder = -1 这是一种简单的方法,您必须检测平面(在您的例子中是墙)并设置 node.geometry.fi

我有一个AR应用的想法,我注意到在大多数AR应用中,对象都不是通过墙隐藏的,比如我把AR肖像钉在房间里,只有我去那里才能看到,而不是通过墙

我没有AR方面的经验,只是即将学习


谢谢。

这是一种简单的方法,您必须检测平面(在您的情况下是墙)并设置

node.geometry.firstMaterial?.colorBufferWriteMask = []
node.renderingOrder = -1

这是一种简单的方法,您必须检测平面(在您的例子中是墙)并设置

node.geometry.firstMaterial?.colorBufferWriteMask = []
node.renderingOrder = -1

使用三种不同的墙创建方法可以轻松地将所有对象隐藏在墙后:SCNBox()、SCNShape()和拉伸,或SCNGeometry()。无论您选择什么,只需将空实例属性
.colorBufferWriteMask
分配给它即可。和
。renderingOrder
实例属性必须是
-1
。首先渲染渲染渲染顺序为负值的节点

let wallNode = SCNNode()
wallNode.geometry = SCNBox(width: 15.0, height: 3.0, length: 0.1, chamferRadius: 0)
wallNode.position = SCNVector3(x: 0, y: 0, z: 5)

//wallNode.geometry = SCNShape(path: NSBezierPath?, extrusionDepth: CGFloat)
//wallNode.geometry = SCNGeometry(sources: [SCNGeometrySource], elements: [SCNGeometryElement]?)

wallNode.geometry?.firstMaterial?.colorBufferWriteMask = []
wallNode.renderingOrder = -1
scene.rootNode.addChildNode(wallNode)

希望这能有所帮助。

您可以使用三种不同的墙创建方法轻松地将所有对象隐藏在墙后:SCNBox()、带拉伸的SCNShape()或SCNGeometry()。无论您选择什么,只需将空实例属性
.colorBufferWriteMask
分配给它即可。和
。renderingOrder
实例属性必须是
-1
。首先渲染渲染渲染顺序为负值的节点

let wallNode = SCNNode()
wallNode.geometry = SCNBox(width: 15.0, height: 3.0, length: 0.1, chamferRadius: 0)
wallNode.position = SCNVector3(x: 0, y: 0, z: 5)

//wallNode.geometry = SCNShape(path: NSBezierPath?, extrusionDepth: CGFloat)
//wallNode.geometry = SCNGeometry(sources: [SCNGeometrySource], elements: [SCNGeometryElement]?)

wallNode.geometry?.firstMaterial?.colorBufferWriteMask = []
wallNode.renderingOrder = -1
scene.rootNode.addChildNode(wallNode)

希望这能有所帮助。

Didar,你已经实施了这种方法吗?@ARGeo嘿!还没有。因为我是AR新手,只对它的实际工作方式感兴趣,但是谢谢你的帮助!!迪达,你已经实施了这个方法吗?@ARGeo嘿!还没有。因为我是AR新手,只对它的实际工作方式感兴趣,但是谢谢你的帮助!!