问题标签 [scenekit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 物理模拟的 SceneKit 更新方法
我玩过精灵套件并使用更新方法来设置要处理的每个时间步骤。我正在尝试使用场景工具包快速学习一些东西,但似乎找不到等价物。
你能指出一个为 SceneKit 实现更新方法的例子吗?谢谢。
ios - iOS 上 Swift 中的自定义 SceneKit 几何图形不起作用,但等效的 Objective C 代码可以
我热衷于采用新的 Swift 语言,因为这似乎是 Apple 开发的前进方向。iOS 8 中新的 SceneKit 支持也给我留下了深刻的印象。我想在运行时以编程方式创建自定义几何图形,但我很难让 Swift 代码正常工作。然而,Objective C 中的等效代码可以正常工作。
这可能是一个错误,或者我做错了什么。
我只是想创建和渲染一个三角形。为简单起见,此时我将忽略法线和纹理等。所以我只希望看到一个黑色三角形。
Swift 代码(不工作)
目标 C 代码(确实有效)
任何指针将不胜感激。
ios - 旋转到对象场景套件
所以我在 iOS8 和 Scene Kit 上做了很多工作。这是我不会让用户在屏幕上点击和 3D 模型指向用户点击的地方感到高兴。
swift - 如何导出 DAE 文件以在 Scene Kit 中使用而不会看到“无标题动画”?
我正在尝试将在 Cheetah 3D 和 Blender 3D 中创建的动画加载到 Scene Kit 中,但我得到的只是一堆“无标题动画”,每个动画都是相同的动画。
有谁知道如何从 Blender 或 Cheetah 3D 正确导出这些,以便 Scene Kit 可以使用它们?
objective-c - 将 SceneKit 场景导出为 Collada .dae 文件的最简单方法?
我有一个算法生成的 SceneKit 场景,我希望能够将其导出为 Collada .dae 文件,例如用于 iBooks Author。由于 SceneKit 可以导入 Collada 文件,我认为可能也可以导出它们,但在 API 中找不到任何内容。
除了编写我自己的导出器来迭代每个节点/几何等,有没有更简单的方法?
ios - SceneKit 轨道变换
因此,从 SceneKit 开始,到目前为止一切顺利,直到我偶然发现了转换,认为这就像层上的 CA3d* 转换。
然而,关于 Z 轴的工作方式,我似乎完全错了,转换的工作方式也大不相同。
例如,我正在尝试完成 3d 轨道式运动,类似于旋转木马外观。这段 CA3D 代码可以很好地做到这一点:
如果应用于具有不同“度”值的多个对象,您将获得漂亮的圆形 3d 轨道外观。
与 SceneKit 相同会产生不同的结果:
实际发生的情况是在旋转后 Z 值轴会根据 CAT3D + 图层中应用的旋转进行更改和平移,但是在 SceneKit 上,Z 轴始终是恒定的,因此平移只会将它们一起移动,因此您只会得到一个挤压看。
所以我知道这是在真正的 3d 空间中工作的,但现在看来我必须使用 Sphereical 和 Ellipse 数学来做同样的事情。
所以任何人都可以给我提示如何做我想做的事情?我现在正在尝试球面数学并使用 SCNMatrix4Translate 但我还没有完全掌握数学。
我认为我需要的是计算椭圆 xyz 的公式,我追求的是与此非常相似的东西:
http://en.wikipedia.org/wiki/Ellipse#mediaviewer/File:Conicas1.PNG
可以使用上面的 CAT3D 片段在图层上实现这种轨道。
长话短说,我需要得到一个像上图这样的轨道布局,并且需要一些关于 SceneKit 和/或几何数学的帮助。所有物体都应该像轨道一样围绕中心原点旋转
ios - SceneKit 计算可视范围?
因此,根据标题,我试图弄清楚是否有一种计算场景边界的好方法,因为通常的帧/边界属性在上下文中并不真正起作用。
我基本上需要一种方法来根据 xFov/yFov/zNear/zFar 的相机设置检查对象是否已移出可视屏幕。到目前为止,我还没有真正找到这样做的好方法。我是否在这里忽略了任何 API 方法,还是需要手动计算?
我希望我在这里有意义,如果不是,请告诉我,我会进一步澄清。
ios - Playground 和 iOS 设备/模拟器之间的坐标系似乎不匹配
在过去的几天里,我一直在努力思考 Xcode 6 和 iOS 8 中的所有优点。我目前正在使用 SceneKit 来了解它可以做什么。
我正在尝试构建一个视觉网格,以使在场景中放置对象更容易一些。
Playground 显示了我的期望,但 Simulator/Device 没有。我不确定这是一个错误,还是我做错了什么。
我有以下代码:
在 Playground 中,第二行是let i = CGFloat(index)
,但除此之外,Playground 和我拥有的 iOS Xcode 6 项目之间的代码相同。
在操场上,我得到了我想要的网格。然而,在模拟器和设备上,我得到了垃圾。无论我如何更改SCNVector3Make
调用,我都无法让网格在 iOS 或模拟器中正确显示。
还应注意,模拟器和设备上显示的内容是相同的。
我也尝试在场景中添加一个盒子。当我使用SCNBox
它时,它会正确显示 - 尽管比它应该的要大得多。但是,当我使用自定义几何图形(在 Playground 中可以正常工作)时,盒子的尺寸会变大。它看起来更像一堵墙而不是立方体。
我试图包含屏幕截图以显示我所看到的内容,但显然我需要至少 10 个声望点才能发布图像,抱歉。
提前致谢!
更新
要回答以下评论者的问题(关于我如何初始化场景):
在项目中(在 Simulator/Device 中运行)我是这样得到它的:
在操场上,我这样做:
更新 2
我创建了一个 OSX 应用程序,修改了生成的 GameViewController 代码以生成相同的结构,并且一切都按预期工作。我没有将盒子的颜色更新为红色,并且立方体和相机的位置在 OSX 应用程序中有点不同。
现在我有足够的积分,我将添加显示我所看到的图像。
另外值得注意的是,我在 Xcode Beta 2 和 3 上都试过这个 - 结果是相同的。
我在操场上看到的
我在 OSX 应用程序中看到的内容
我在 iOS 模拟器中看到的
我通过电话和 iPad 从 iOS 8 中删除,所以我没有任何屏幕截图 - 但它们看起来与模拟器相同。
我将通过 Apple 提交一份错误报告。
更新 3
我已经为这些项目创建了存储库,因此任何有兴趣的人都可以看看(也许有些事情我不知道我做错了):
如果您发现我做错了什么或者我可以如何做得更好,请告诉我!
谢谢大家的帮助!
ios - 将屏幕外的 SCNScene 渲染到 UIImage 中
如何将屏幕外 SCNScene
渲染渲染成UIImage
?
我知道这SCNView
提供了一种-snapshot
方法,但不幸的是,这不适用于屏幕外视图。之前有人问过一个类似的问题,其中一个答案建议使用 OpenGL 从 OpenGL 读取位图数据glReadPixels
,但这种方法对我来说不适用于屏幕外场景。
我尝试渲染到GLKView
使用的上下文中SCNRenderer
但没有成功。
ios - 是否有可见区域的边界?[SceneKit iOS]
我的问题在此屏幕截图中可见:
字母“M”和一艘船被切成两半。当我改变相机位置时,我可以看到它看起来像是“吃掉”我的节点的无形边界。
有什么想法可以做错吗?