Tag: 场景

什么是核心audio错误561015905,为什么当我使用lockingbutton时会发生?

由于升级到iOS 10和Xcode 8,我的iOS应用程序一直在使用lockingbuttonclosures屏幕时发生错误和崩溃。 错误是: ***终止应用程序由于未捕获的exception“com.apple.coreaudio.avfaudio”,原因:“错误561015905” 我没有明确使用核心audio或任何audio。 但是我正在使用SceneKit,我假设它使用Core Audio。 其实这个行为似乎并没有涉及到我的代码。 它发生在一个全新的未触及的SceneKit模板上! 在模拟器中不会发生这种情况,但是它会一直使用iPhone 5进行testing。我还没有用另一种模型进行testing。 重现步骤:使用带有SceneKit的“游戏”模板在Xcode 8.0中创build一个新项目。 在项目编辑器中设置您的团队进行代码签名。 连接iPhone 5进行testing。 构build并运行应用程序。 一旦开始(你看到旋转的飞机),点击lockingbutton。 发生错误,应用程序不会从locking屏幕返回。 谷歌结果的错误信息似乎都来自实际使用核心audio或尝试播放声音的人,这不适用于此。 这个错误是什么,可以做些什么呢?

如果vector具有4个分量,则在y轴上映射vector

我在一个节点上施加一个力和一个扭矩。 这是我的代码: myNode?.physicsBody?.applyForce(SCNVector3Make(0, -6, 4), atPosition: SCNVector3Make(0, 1, -1), impulse: true) myNode?.physicsBody?.applyForce(SCNVector3Make(0, -2, 10), impulse: true) myNode?.physicsBody?.applyTorque(SCNVector4Make(4, 2, 2.5, 1.6), impulse: true) 现在,物体倒下,然后从左向右移动。 我希望它掉下来,从右向左移动(基本上是第一次穿过Y轴的reflection)。 我知道,对于前两行代码我可以做的很less,因为这个部队没有X分量。 最后一行applyTorque是我需要操作的。 如果vector有4个分量,那么如何在Y轴上进行映射? 我有点math生疏

SceneKit统计信息显示中的“金属冲洗”是什么?

我正在尝试排除FPS中的丢包。 我看到金属冲洗是占用大部分渲染时间。 那是件好事儿吗?

如何通过SceneKit和模型I / O在.OBJ 3D模型上应用.MTL文件

我试图通过SceneKit和模型I / 0在.obj 3d模型上应用.mtl文件纹理。 当我尝试在其上应用纹理的.jpg时,下面的代码正常工作: let url = NSBundle.mainBundle().URLForResource("chair", withExtension: "obj") let asset = MDLAsset(URL: NSURL(string:url)!) guard let object = asset.objectAtIndex(0) as? MDLMesh else { //fatalError("Failed to get mesh from asset.") return } if shouldApplyTexture == true { var textureFileName = "chair.mtl" // Create a material from the various textures let scatteringFunction = MDLScatteringFunction() let […]

如何创build逼真的.scn文件?

看苹果示例AR应用程序,有许多逼真的对象(杯子,蜡烛等)。 但是使用Xcode上的场景编辑器编辑器很显然,这只允许您创build基本对象。 我的问题是,什么软件/文件可以用来创build真实的scn对象? 我确信有一些软件可以让你创build3D模型并将它们转换成scn文件。 我只是不知道要使用哪个软件或哪些文件可以转换为scn 注意:我明白,这个问题可能太模糊/广泛的Stackoverflow准则。 我只是不知道在哪里提出我的问题,这似乎是最好的地方

子类化SCNScene和SceneKit编辑器

我有SCNScene子类与相机设置,我想在所有的子类中使用。 let scene01 = TheSubclassScene() let scene02 = TheSubclassScene(named:"art.scnassets/testScene.scn")! self.sceneArray.addObject(scene01) self.sceneArray.addObject(scene02) 我想在运行时改变场景。 当我在代码中创build场景时,这种方法起作用,但不能从SceneKit编辑器中使用场景。 所以scene01正在工作,但scene02不是。 在debugging器中,我可以看到数组中的两个场景。 一个是SCNSceneSubclasstypes,另一个是SCNScenetypes。 有没有办法让这个工作? 更新:这是我的场景子类 class TheSubclassScene: SCNScene { let cameraNode = CameraNode() override init() { super.init() self.rootNode.addChildNode(self.cameraNode) } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } }

SCNNode上的CIFilter只能在模拟器中使用

使用iOS9的SceneKit中的新filterfunction有点头疼。 为了尽可能简化案例,如果我添加行: ship.filters = [CIFilter(name: "CIPixellate", withInputParameters: [kCIInputScaleKey: 30])!] 对于默认的SceneKit项目,构build并运行模拟器,船符合预期。 如果我在设备上构build和运行同一个项目,那么该船就会消失。 我已经尝试过各种排列,多种设备,甚至在博客上发布了几个SceneKit演示,而且他们都有同样的问题。 我只是不知道我错过了什么。

我怎样才能覆盖SKScene在Swift的SCNScene?

在互联网上有一些覆盖教程,在某些时候都使用overlaySKScene 。 这在某种程度上是不可能在我的项目中,因为(我猜)我的视图不使用SCNView的构造函数( overlaySKScene是其中的一部分)。 在ViewController的viewDidLoad中,基本上只有MainScene被创build: viewDidLoad() { self.sceneView = MainScene(view: self.view)) } …在这里(注:SCNScene而不是SCNView): class MainScene: SCNScene, SCNPhysicsContactDelegate {… init(view:UIView) { scnView = view as! SCNView super.init() scnView.scene = self; (…) } 现场是完全创build的,现在我想覆盖SKScene。 有谁知道如何?

什么是SCNVector3组件的types? CGFloat或Float?

苹果文档给出了SCNVector3的声明: typedef struct SCNVector3 {CGFloat x,y,z; } SCNVector3; 或者当试图写一个重载函数时: func * (left: SCNVector3, right: CGFloat) -> SCNVector3 { return SCNVector3Make(left.x * right, left.y * right, left.z * right) } 我得到“无法调用”与types“错误的参数列表”。 是不是left.x,left.y和left.z应该是CGfloat? 如何以及何时决定CGFloat是双重还是浮动?

我们可以在SceneKit中的透明平面上渲染阴影吗?

我用平面着色器修改器,但它不工作。 任何人都可以build议我如何解决它? let myShaderfragment = "#pragma transparent;\n" + "_output.color.a = 0.0;" let myShaderSurface = "#pragma transparent;\n" + "_surface.diffuse.a = 0.0;" material.shaderModifiers = [SCNShaderModifierEntryPoint.fragment : myShaderfragment, SCNShaderModifierEntryPoint.surface : myShaderSurface]