scenekit相关内容
我想用 Scene 工具包创建一个应用程序来解决 Rubix Cube.我有自己的多维数据集 dae 文件.这是我在 viewDidLoad 中的设置代码 let myscene = SCNScene(named: "Rubik1.scnassets/Rubiks_Cube.dae")scene.rootNode.addChildNode((myscene?.rootNode)!)//检索 S
..
我有一个 SCN 节点,我已将其转换为所需的旋转和角度. 我现在想在它的新 x 轴上无限旋转它,但我似乎无法让它旋转 360 度,它只是稍微移动. 让 spin = CABasicAnimation(keyPath: "rotation")spin.fromValue = NSValue(SCNVector4: SCNVector4(x: item.rotation.x, y: item.
..
假设您在 3-D 空间中有两个点.调用第一个 o 为原点,另一个 t 为目标.每个的旋转轴都与世界/父坐标系(以及彼此)对齐.放置与原点重合的第三个点r,相同的位置和旋转. 如何在 Swift 中旋转 r 使其 y 轴指向 t?如果指向 z 轴更容易,我会改用它.其他两个轴的最终方向对我的需求来说并不重要. 我已经进行了许多与此相关的讨论,但没有一个令人满意.我从阅读和经验中了解到,欧
..
..
嘿,好的,在 Overlayskscene 上的场景套件 3D 游戏中识别 HUD 触摸的最佳方法是什么.因为我有一个名为“AButton"的按钮,但是当我触摸按钮或屏幕时,经过数小时的搜索游戏会崩溃,我猜问题是场景套件上的 touchbegin 不完全相处.但是,我该如何做到这一点,以便当用户触摸 HUD 上的按钮时,它不会使系统崩溃并且它实际上可以工作.你能看看我的代码并重写它吗?我是使用 t
..
我打算用二维箭头在屏幕上显示 AR 对象的信息.所以我使用 projectPoint 来获取屏幕中对象的相应位置.我有这个函数可以返回将节点的 3D 位置转换为 2D 和 CGPoint 以显示信息文本. func getPoint(sceneView: ARSCNView) ->(CGPoint,CGPoint){让projectedPoint = sceneView.projectPoint
..
我很高兴看到您在 Xcode 6 中使用 SKS 编辑器可以做的所有事情.我可以在 sks 编辑器中布置一些精灵、灯光、法线等.然后我可以像这样在我的视图控制器中加载 sks 文件: -(void)viewWillLayoutSubviews {[超级视图WillLayoutSubviews];//配置视图.SKView * skView = (SKView *)self.view;如果(!sk
..
网上有一些overlay教程,都是用的overlaySKScene 在某个时候. 这在我的项目中是不可能的,因为(我猜)我的视图在任何时候都不使用 SCNView 的构造函数(其中 overlaySKScene 是其中的一部分). 在ViewController的viewDidLoad中,基本上只创建了MainScene: viewDidLoad() {self.sceneView
..
我一直在尝试使用 SceneKit 在球体外边缘的两点之间绘制圆柱体.我已经使用原始几何和带有 SCNRendering Delegate 的 openGL 在这两个点之间生成了一条线,但是现在我需要在这两个点之间生成一个圆柱体(嗯,不仅仅是两个,而是位于球体表面的任何两个 3D 向量).我已经连续工作了大约 3 天,并且我已经完成了所有我能找到的实现四元数以实现这一目标的方法,但就目前而言,我无
..
我正在用 SceneKit for iOS 编写一个场景. 我正在尝试使用精灵表将纹理应用于对象.我使用以下代码遍历该表中的图像: happyMaterial = [SCNMaterial new];happyMaterial.diffuse.contents = happyImage;happyMaterial.diffuse.wrapS = SCNWrapModeRepeat;happ
..
我想使用正交投影在我的应用中显示 3D 场景.在我的代码中,我在场景中放置了一个框,并设置了视点的正交投影,如打击.(0,0,500) 处的相机看 -z 方向,并在世界的原点框.所以相机应该能够捕捉到盒子. 让 cameraNode = SCNNode()让 pov = SCNCamera()pov.usesOrthographicProjection = true让宽度 = UISreen.m
..
所以我正在制作一个游戏,在上述游戏中,您将使用 DPad 在场景中移动您的球.我正在使用 Xcode 7 Beta 5,尽管在 beta 4 中也存在同样的问题.这是测试视图控制器的代码: 类 TestController: UIViewController,DPadDelegate {@IBOutlet var scnView:SCNView!@IBOutlet var dpad:DPad!v
..
也许这更像是一道数学题,但我希望有人能帮助我了解如何补偿相机方向的变化. 我想做的是能够使用类似游戏的控件在场景中移动我的相机.我设置了 W S A D 键来分别向前、向后、向左和向右移动相机.我通过更改相机节点的位置向量的值来做到这一点.我还有右左上和下箭头键映射到转动和倾斜相机.我通过调整相机节点的欧拉规则(俯仰和偏航)来做到这一点. 在我用左右箭头转动相机之前,一切正常.在此之后
..
如何使用 Scene Kit 中的 SCNCamera 获得像鱼眼镜头对视图所做的那样的失真? 类似于这种图像的“鞠躬": //正如 Rickster 所指出的,这种失真被称为“桶形失真". 从文档中,这就是让我对使用相机进行这种失真的可能性感兴趣的部分: 如果你计算你自己的投影变换矩阵,你可以使用这个直接设置它的方法,覆盖合成的转换来自相机的几何属性. 不幸的是,我
..
我硬着头皮开始将我的应用程序转换为 Swift 3.与往常一样,转换器仍有很多不足之处.在这种情况下,我不确定如何正确编码新版本.这是原文: 让索引:[CInt] = [0,1,2,3]让 dat = NSData(字节:索引,长度:sizeofValue(索引))让 ele = SCNGeometryElement(data:dat,primitiveType: .Triangles,prim
..
我想在用户点击屏幕时创建一个新的 SceneKit 节点,并让它以设定的距离直接出现在相机前面.为了测试,这将是一个 SCNText 读取“你点击这里".它也应该与视线成直角 - 即“面对"相机. 那么,鉴于 self.camera.orientation SCNVector4(或类似的),我该怎么做: 生成 SCNVector3,将节点置于摄像机“前面"给定距离处? 生成定位节点的
..
我有两个 SCNVector3 类型的点(我们称它们为 pointA 和 pointB).我想在它们之间划一条线.看起来应该很容易,但找不到方法. 我看到两个选项,都有问题: 使用半径非常小的 SCNCylinder,长度为 |pointA-pointB|然后定位/旋转它. 使用自定义 SCNGeometry 但不确定如何;也许必须定义两个三角形才能形成一个非常细的矩形?
..
我在位置 (30,30,30) 有一个 SCNCamera,在位于位置 (0,0,0) 的对象上有一个 SCNLookAtConstraint.我正在尝试使用 UIPanGestureRecognizer 使相机围绕假想球体上的对象旋转,同时保持相机和对象之间的半径.我假设我应该使用四元数投影,但我在这方面的数学知识非常糟糕.我的已知变量是 x &y 翻译 + 我试图保持的半径.我已经用 Swif
..
我正在尝试在一张照片上构建静态增强现实场景,其中平面和图像上的共面点之间有 4 个定义的对应关系. 以下是分步流程: 用户使用设备的相机添加图像.让我们假设它包含一个从某个角度捕获的矩形. 用户定义矩形的物理尺寸,它位于水平面(就 SceneKit 而言是 YOZ).让我们假设它的中心是世界的原点 (0, 0, 0),所以我们可以很容易地找到每个角的 (x,y,z). 用户在图像坐
..
使用 Swift、ARTKit/SceneKit 我在 3d 中有一条线 AB,我有 A 点和 B 点的 xyz 坐标.我也有一个 C 点,我也知道它的 xyz 坐标. 现在,我想在AB线上找出D点的xyz坐标;假设 CD 垂直于 AB. 在 Swift 中执行此操作的简单方法是什么. 解决方案 用标量 t 参数化 AB 行: P(t) = A + (B - A) *
..