草庐IT

ios - 如何排除模型自身的阴影?

我有一个类型为SCNLightTypeDirectional的SCNLight。渲染场景时,模型会在自身上转换阴影,这出乎我的意料。如何排除模型自身的阴影?或者如何平滑阴影边缘?现在看起来很不自然。场景是: 最佳答案 好吧,我找到了一种简单的方法来实现这一点,但丢失了一些Material细节。将Material的光照模型更改为SCNLightingModelConstant并从SCNLight的光照计算中排除模型。1。设置灯光模型SCNLightingModelConstant只考虑环境光进行着色,所以我们需要环境光来保持模型可见。

ios - 带有 ARSCNView 的 UIViewController 在显示在屏幕上之前需要花费大量时间

我有一个UIViewController,它使用ARSCNView并通过Scenekit添加了一些元素,如下例所示。一切正常,除了当我调用present来显示这个ViewController时,在屏幕上呈现之前需要很长时间或延迟。@IBOutletvarsceneView:ARSCNView!overridefuncviewDidLoad(){super.viewDidLoad()sceneView.showsStatistics=DebugSettings.isDebugActivefor(index,coach)incoachPositions.enumerated(){letco

ios - 新的 iPhone X 前置摄像头深度和面部跟踪网格 API

刚刚看了新iPhoneX的发布会,前置摄像头的感应和追踪技术是否对开发者开放?舞台上演示了Snapchatmask,不确定是否使用ARKit 最佳答案 是的,它对开发者开放。如果您查看ARKitdocspage现在,您会看到它分为世界跟踪和面部跟踪部分(加上两者的一些共同点)。WorldTracking是在WWDC上宣布的——使用后置摄像头“通过”你的设备查看你周围世界的AR内容。人脸追踪AR专用于iPhoneX和TrueDepth相机。正如您在这些文档中看到的那样,它使用ARFaceTrackingConfiguration而不是

ios - 如何使用 AVFoundation 播放带有 alpha channel 的视频?

我有一个使用SceneKit的AR应用程序,并使用AVPlayer将视频导入到场景中,从而将其添加为SKVideo节点。视频本来应该是可见的,但是没有达到视频的透明度。代码如下:letspriteKitScene=SKScene(size:CGSize(width:self.sceneView.frame.width,height:self.sceneView.frame.height))spriteKitScene.scaleMode=.aspectFitguardletfileURL=Bundle.main.url(forResource:"Triple_Tap_1",withEx

ios - 渲染回调时场景被修改

我有以下产生错误的代码:funcrenderer(_renderer:SCNSceneRenderer,didAddnode:SCNNode,foranchor:ARAnchor){ifanchorisARImageAnchor{letphoneScene=SCNScene(named:"Phone_01.scn")!letphoneNode=phoneScene.rootNode.childNode(withName:"parentNode",recursively:true)!//rotatethephonenodeletrotationAction=SCNAction.rotat

ios - ARKit 演示在 iPhone 6/iPhone 6 Plus 上崩溃

我正在使用ARKitFeature,最近的主要iOS版本,但我遇到了错误failedassertionMTLRenderPassDescriptor:MTLStoreActionMultisampleResolvestoreactionforthedepthattachmentisnotsupportedbydevice我的iPhone设备上已经安装了iOS11beta。 最佳答案 由于以上所有答案,这是对A9芯片的硬件限制。无论如何,将ARKit添加到Info.plist上的UIRequiredDeviceCapabilities

ios - 在没有 iPhone6s 或更新版本的情况下测试 ARKit

我在决定下载Xcode9之前。我想玩新框架-ARKit。我知道要使用ARKit运行应用程序,我需要一台配备A9芯片或更新芯片的设备。不幸的是我有一个旧的。我的问题是针对已经下载了新Xcode的人。在我的案例中有可能运行ARKit应用程序吗?任何模拟器或其他东西?有任何想法还是我必须购买新设备? 最佳答案 ARKit可在任何iOS11设备上使用,但实现高质量AR体验的世界跟踪功能需要配备A9或更高处理器的设备。必须将您的设备更新为iOS11beta。 关于ios-在没有iPhone6s或更

ios - 欧拉角 Y 值受 X 和 Z 值的影响——如何将它们归零以获得 "truthful"y 值?

我想要实现的效果是从相机的pointOfView位置指向一个箭头,在x和z轴上与场景(和重力)对齐,但指向与相机相同的方向。它可能看起来像这样:现在,我将其欧拉角x和z设置为0,并将其设置为y与ARSCNView.pointOfView.eulerAngles.y相匹配。问题是,当我旋转设备时,eulerAngles.y最终可能对不同的点具有相同的值。例如,面向一个方向的设备,我的eulerAngles是:x:2.52045,y:-0.300239,z:3.12887从另一个方向面对它,eulerAngles是:欧拉角x:-0.383826,y:-0.305686,z:-0.02392

swift - 如何更新 ARKit 中的 pointOfView

我正在尝试构建我的第一个ARKit应用程序。该应用程序的目的是在相机朝向的方向拍摄小块。现在,这是我的代码。sceneView.scene.physicsWorld.gravity=SCNVector3(x:0,y:0,z:-9.8)@IBActionfunctapScreen(){ifletcamera=self.sceneView.pointOfView{letsphere=NodeGenerator.generateCubeInFrontOf(node:camera,physics:true)self.sceneView.scene.rootNode.addChildNode(s

swift - SCNBox 使正面旋转到 ARKit 中的相机

我有一个简单的ARKit应用程序。当用户触摸屏幕时overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}letresult=sceneView.hitTest(touch.location(in:sceneView),types:[ARHitTestResult.ResultType.featurePoint])guardlethitResult=result.lastelse{return}lethitTrasform=SCNMatrix4(hi