首页 文章
  • 1 votes
     answers
     views

    获取用于创建SCNNode的SCNSphere的半径

    如何返回用于设置SCNNode的球体几何体(SCNSphere)的半径 . 我想在一个方法中使用radius,我将一些子节点相对于父节点移动 . 下面的代码失败,因为如果我没有将节点传递给方法,那么结果节点的半径似乎是未知的? 我的数组索引也失败说Int不是Range . 我正在尝试从this构建一些东西 import UIKit import SceneKit class Primitives...
  • 1 votes
     answers
     views

    如何将SceneKit尺寸映射到图稿像素大小?

    与this question相关,关于在SceneKit中创建静态场景,您应该如何将节点大小映射到艺术作品大小? 假设您有一个半径为1的SCNSphere . 在球体内部,您想要呈现一个字符精灵 . 你如何决定精灵艺术品应该有多大,也就是说,艺术品像素大小和SCNNode大小之间的关系是什么? 对于SpriteKit,这是自动完成的,因为节点默认采用精灵纹理的大小 . 现在,唯一的解决方案似乎是一...
  • 0 votes
     answers
     views

    在纹理球体上给出4个点提取2d平面并且它是投影纹理

    Setting the scene 我'm working on a feature in scenekit where i have a camera at the center of a sphere. The sphere has a texture wrapped around it. Let'说它是在房间里拍摄的360度图像 . So far 我已经确定了球体上与地板角落相对应的位置 ....
  • 0 votes
     answers
     views

    是否可以使用CoreML和ARKit获取World对象的“SCNVector3”位置?

    我正在研究基于AR的解决方案,其中我使用SceneKit和ARKit渲染一些3D模型 . 我还集成了CoreML来识别对象并在场景中渲染相应的3D对象 . 但是现在我只是在检测到对象时将其呈现在屏幕的中心(仅用于我拥有的对象列表) . 是否有可能获得现实世界对象的位置,以便我可以在对象上方显示一些叠加? 那就是如果我有一个水瓶装扫描,我应该能够得到水瓶的位置 . 它可能在水瓶中的任何地方,但不应该...
  • 0 votes
     answers
     views

    SceneKit:围绕轴镜像SCNNode

    我正在开发一个AR Kit应用程序,其中一架飞机被放置在一个表面上的用户定义点之间 . 目前,平面在形状和大小方面正确创建,但未在AR空间中以正确的方向放置 . 如何以一种将它放置在设定点的方式镜像节点? 这是当前状态的图像 . 注释如下: Blue :设定点数 Green :成品和放置形状的角落 White :应该镜像形状的线,以便正确放置 Screenshot from the...
  • 2 votes
     answers
     views

    克隆节点和性能,几何和性能; IOS Scenekit

    我正在使用Scenekit编写应用程序,客户希望在IOS中推动动画的极限 . 这个特殊的应用程序有一些要求,我在屏幕上超过1500次重绘 . 即使有这么多的重绘,我已经将FPS锁定到60,这很棒,但是当我添加客户想要的所有元素时,重绘被推到7,500重绘(是的,这不是一个错误或一个笑话,这是重绘数字,即使它比我在scenekit中看到的大多数重绘次数高出近50-80倍) . 在这个重绘级别,屏幕包...
  • 2 votes
     answers
     views

    SceneKit计量单位

    如果我要在SceneKit中创建宽度,高度和长度为5的SCNBox几何体,那么它如何转化为真实世界的测量值? 例如,在SketchUp中,我将使用哪些测量值来创建相同大小的立方体? SceneKit中的1个单位是等于10mm还是100mm?
  • 1 votes
     answers
     views

    使用SceneKit创建类似对象的大型网格

    我目前正在测试将SceneKit用于我想制作的游戏的可行性,但是在确定如何最好地在SceneKit中创建许多类似几何对象的网格同时保持可接受的性能时也是如此 . 这是我想做的事情: 放置数百个几何图元,现在只是一个普通的立方体在网格中 . 将各种顶点和/或曲面和/或片段着色器应用于每个立方体 . 一些立方体可能会应用相同的着色器,但实际上我希望至少有几十种不同的着色器可以应用于立方体 . ...
  • 1 votes
     answers
     views

    SceneKit使用扭矩旋转节点会产生与通过动画不同的向量

    我通过在每个更新周期施加扭矩来沿着Z旋转SCNNode和SCNPhysics主体 . func renderer(renderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) { print(box.presentationNode.rotation) box.physicsBody?.applyTorque(SCNV...
  • 2 votes
     answers
     views

    如何将两个或多个SCNGeometry / SCNNode组合成一个

    好像我想通过组合一些SCNBox和SCNPyramid等来创建一些自定义形状,我可以通过设置正确的位置和几何形状将它们组合在一起 . 我怎么也找不到将它们组合成一个可以在物理世界中修改或反应的单元的方法 . 下面的代码,我想创建一个简单的房屋形状SCNNode,我希望节点在受到任何碰撞和重力影响时相互连接 . 任何人都可以提供一些提示吗? let boxGeo = SCNBox(width: 5,...
  • 0 votes
     answers
     views

    从SceneKit中删除所有几何体,或在运行中修改它

    我有一个简单的SceneKit视图,可以显示天线设计,如电视天线,或者这个不太常见的例子,一个双二阶 . 这些设计包括许多旋转和定位的 SKCylinders . 与该视图连接的是NSTableView,它列出了柱面的 endpoints ,并允许用户编辑它们 . 当他们退出编辑器时,3D视图会更新 . 问题是我的代码当前总是在每次重绘时向视图中添加新的 SKCylinders . 因此,当...
  • 2 votes
     answers
     views

    使用boundingBox将SCNText与iOS SceneKit中的SCNBox对齐?

    修订问题: 我不明白为什么白色节点在它是一个盒子或球体时居中,而不是在它的文本时 . 您可以注释/取消注释whiteGeometry变量,以查看每个不同几何体的显示方式 . 我原本以为我必须通过确定框的宽度和文本以及计算文本的位置来手动居中文本 . 我需要这样做吗?为什么文本表现不同? import SceneKit import PlaygroundSupport let scene = SC...
  • 3 votes
     answers
     views

    如何在SceneKit中每帧绘制动态线条或曲线

    我有一个Metal支持的SceneKit项目,我想在每帧画一条在CPU上修改过的曲线 . 这似乎应该是一项简单的任务;我多次在OpenGL中完成的一个 . 就像是: array_of_points[0].x = 25 array_of_points[0].y = 35 upload_array_to_gpu() render_frame() 似乎无法修改SCNNode的SCNGeometrySo...
  • 0 votes
     answers
     views

    SCNNode在放置后违反位置

    我正在使用Apples SceneKit并拥有自定义 .dae 资产 . 我已将资产转换为 .scn 文件 . 我从 .scn 文件中获取名称 SCNNode . 将SCNNode作为子节点放入我的SCNView场景并将其位置设置为 SCNVector3(0,0,-1) 后,它会忽略此位置,而是跟随我的手机位置 . 资产在我身上呈现,当我走开时,它跟随着我 . 它's getting to be...
  • 0 votes
     answers
     views

    Swift / SceneKit - 更改自定义SCNGeometry的轴

    我在this question的帮助下创建了一个自定义SCNGeometry对象 . 但是,将几何应用于SCNNode时,枢轴似乎不在正确的位置 . 旋转节点时,我想围绕几何体的中心旋转节点,而是围绕另一个点旋转 . 我可以通过使用 node.pivot = SCNMatrix4MakeTranslation(ARROW_WIDTH / 2, 0, ARROW_LENGTH / 2) 更改节点的轴...
  • 0 votes
     answers
     views

    节点组的位置在SCNNode.runAction的开头重置

    我有一些代码可以在屏幕被点击时围绕x轴旋转几个SCNNode: func handleTap(gestureRecognize: UIGestureRecognizer) { let sceneView = self.view as SCNView let slice = self.cubes[0...8] let container = SCNNode() fo...
  • 2 votes
     answers
     views

    SceneKit:如果目标是在相机前旋转相机和项目节点X单位,使用变换或直接操纵旋转/位置属性?

    对于体素艺术应用程序,目标是让用户在SceneKit场景中移动和旋转相机,然后点击以放置块 . 下面的代码允许用户通过平移来旋转相机 . 手势结束后,我们移动现有的块,使其在相机的Z轴上为-X单位(即相机前面的-X单位) . cameraNode 是场景的观点,是 userNode 的孩子 . 当用户移动操纵杆时,我们更新 userNode. 的位置 Question: 其他SO帖子通过应用变换而...
  • 0 votes
     answers
     views

    在应用程序窗口中获取SceneKit节点的框架?

    我希望在SceneKit中渲染的对象上覆盖UIView(特别是带有一些文本的高亮框等),但我遇到了一个问题:我当时并不知道对象在屏幕上的确切位置 . 有没有办法在SCNView中获取SCNNode当前位置的CGRect帧?即使只是节点的中心点也会有所帮助,但理想情况下它会给出整个框架,表明几何体在屏幕上占据了多少垂直和水平空间 . 我在文档和网上搜索了相对于SCNNode的“框架”和“边界”的各种...
  • 3 votes
     answers
     views

    如何确定ScnNode是否在SceneKit中的摄像机节点的视图方向的左侧或右侧

    我在SceneKit场景的中心位置(0,0,0)有一个摄像头我围绕y轴旋转摄像机以显示场景的不同部分 . 我想在屏幕的左/右侧显示箭头,以显示用户移动以查看目标对象的方向 . 如何计算ScnNode是否位于视图方向右侧的左侧? 我知道: 摄像机节点的位置和旋转 目标节点的位置
  • 2 votes
     answers
     views

    SceneKit - 平移手势过快地移动节点

    我只是沿着 X -axis移动它,但是我的手势将对象移动得更远/更快,然后它甚至应该只使用小手势 . 我在这里做错了,但这里是我手势识别器的代码: @objc func handlePan(pan:UIPanGestureRecognizer) { if pan.state == .changed { let translation = pan.translation(...
  • 0 votes
     answers
     views

    如何使用ARKit和Gesture Recognizer移动和旋转SCNode?

    我正在使用ARKit(SceneKit)开发基于AR的iOS应用程序 . 我使用Apple示例代码https://developer.apple.com/documentation/arkit/handling_3d_interaction_and_ui_controls_in_augmented_reality作为基础 . 使用此我可以移动或旋转整个虚拟对象 . 但我想使用用户手指在虚拟对象中选...
  • 0 votes
     answers
     views

    如何使用ARKit用手指拖动SCNode而不管轴?

    我正在使用ARKit开发基于AR的应用程序 . 我使用https://developer.apple.com/documentation/arkit/handling_3d_interaction_and_ui_controls_in_augmented_reality作为基础 . 使用此我可以移动或旋转整个虚拟对象 . 现在虚拟对象中有很多子节点 . 我想用用户的手指拖动/移动任何子节点,而不管...
  • 0 votes
     answers
     views

    继续旋转场景节点,直到设备返回到起始位置

    在尝试使用场景工具包时,我正在使用 self.motionManager.deviceMotion.attitude.quaternion 在3D场景中旋转场景节点(相机) . 让我们说用户启动应用程序并且设备以某种方式倾斜,因此这个起始方向应该被计为休息点,并且在这个位置时不应该发生旋转 . 当用户倾斜设备(向左< - >向右和/或向上< - >向下)时,它应逐渐旋转,直...
  • 3 votes
     answers
     views

    SceneKit相机,如何补偿euler规则(方向)的变化

    也许这更像是一个数学问题,但我希望有人可以帮助我理解如何补偿相机方向的变化 . 我想做的是能够使用类似游戏的控件将我的相机移动到场景中 . 我有W S A D键设置分别向前,向后,向左和向右移动相机 . 我这样做是通过改变摄像机节点位置向量的值来实现的 . 我还有右上左箭头键映射到转动和倾斜相机 . 我通过调整相机节点的欧拉规则(俯仰和偏航)来做到这一点 . 在我用左右箭头转动相机之前,情况一直很...
  • 3 votes
     answers
     views

    SceneKit:用一个手势围绕点轨道相机,同时允许相机以不同的手势旋转

    假设SceneKit场景提供类似于Minecraft的透视图 . 有一台相机 . 摄像机节点的行为类似于人的“头部”,而其父节点的行为类似于“身体” . 摄像机节点是父节点的子节点,称为“userNode” . 目标: 让用户用一根手指平移以旋转相机 . 换句话说,相机位置保持固定,但“头部”旋转并让用户观看场景,就好像在一个圆圈中转身一样 . 让用户用两根手指平移以围绕给定点绕相机运行 ...
  • 22 votes
     answers
     views

    ARKit - 获取场景中ARCamera的当前位置

    我正在同时学习ARKit和Scenekit,这是一个挑战 . 创建了ARWorldTrackingSessionConfiguration会话后,我想知道是否有人知道在场景会话中获取用户“相机”位置的方法 . 我的想法是想要将对象设置为用户当前位置的动画 . let reaperScene = SCNScene(named: "reaper.dae")! let reaperN...
  • 1 votes
     answers
     views

    在ARKit中旋转整个场景

    我目前正在探索ARKit(使用SceneKit)并创建了一个简单的应用程序,其中一些对象放置在相机周围的不同位置 . 我想知道是否可以在不移动相机的情况下围绕原点旋转/拖动整个场景 . 我想象一个水平滑动的客户,可以左右调整场景中所有对象的位置 . 这种事情有可能吗?
  • 0 votes
     answers
     views

    如何通过点击其中一个子节点将父球体旋转到特定位置?

    我有一个球体(earthSphere),其特定的绘制点由其他较小的球体(coordinateSpheres)表示,这些球体是earthSphere的子节点 . 当用户点击任何coordinateSpheres时,我想旋转(earthSphere),使得tapped coordinateSphere面向摄像机 . earthSphere是主场景的根节点,位于SCNVector3(x:0,y:0,...
  • 0 votes
     answers
     views

    ARAnchor方向之间的动画

    我有一个使用 ARImageAnchor 秒的应用程序用相机检测图像 . 我实时更新3d空间中的位置,节点的方向(xyz旋转)可能需要几秒钟才能更新 . 任何附加的场景节点"snap"更新为新方向 . 有没有办法在不断变化的锚定方向之间制作动画,以使过渡更平滑? 我的设置很简单,我正在使用 renderer(didAdd:for:) 将平面添加到提供的节点 .
  • 0 votes
     answers
     views

    如何将ARKit与SCNRender集成到GPUImage渲染中?

    图表如下:ARFrame - > 3DModelFilter(SCNScene SCNRender) - > OtherFilters - > GPUImageView . 加载3D模型: NSError* error; SCNScene* scene =[SCNScene sceneWithURL:url options:nil error:&error]; 渲...

热门问题