问题标签 [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.

0 投票
1 回答
4902 浏览

xcode - 物理模拟的 SceneKit 更新方法

我玩过精灵套件并使用更新方法来设置要处理的每个时间步骤。我正在尝试使用场景工具包快速学习一些东西,但似乎找不到等价物。

你能指出一个为 SceneKit 实现更新方法的例子吗?谢谢。

0 投票
3 回答
6565 浏览

ios - iOS 上 Swift 中的自定义 SceneKit 几何图形不起作用,但等效的 Objective C 代码可以

我热衷于采用新的 Swift 语言,因为这似乎是 Apple 开发的前进方向。iOS 8 中新的 SceneKit 支持也给我留下了深刻的印象。我想在运行时以编程方式创建自定义几何图形,但我很难让 Swift 代码正常工作。然而,Objective C 中的等效代码可以正常工作。

这可能是一个错误,或者我做错了什么。

我只是想创建和渲染一个三角形。为简单起见,此时我将忽略法线和纹理等。所以我只希望看到一个黑色三角形。

Swift 代码(不工作)

目标 C 代码(确实有效)

任何指针将不胜感激。

0 投票
0 回答
843 浏览

ios - 旋转到对象场景套件

所以我在 iOS8 和 Scene Kit 上做了很多工作。这是我不会让用户在屏幕上点击和 3D 模型指向用户点击的地方感到高兴。

0 投票
11 回答
16864 浏览

swift - 如何导出 DAE 文件以在 Scene Kit 中使用而不会看到“无标题动画”?

我正在尝试将在 Cheetah 3D 和 Blender 3D 中创建的动画加载到 Scene Kit 中,但我得到的只是一堆“无标题动画”,每个动画都是相同的动画。

有谁知道如何从 Blender 或 Cheetah 3D 正确导出这些,以便 Scene Kit 可以使用它们?

0 投票
1 回答
1788 浏览

objective-c - 将 SceneKit 场景导出为 Collada .dae 文件的最简单方法?

我有一个算法生成的 SceneKit 场景,我希望能够将其导出为 Collada .dae 文件,例如用于 iBooks Author。由于 SceneKit 可以导入 Collada 文件,我认为可能也可以导出它们,但在 API 中找不到任何内容。

除了编写我自己的导出器来迭代每个节点/几何等,有没有更简单的方法?

0 投票
0 回答
1226 浏览

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 和/或几何数学的帮助。所有物体都应该像轨道一样围绕中心原点旋转

0 投票
1 回答
1557 浏览

ios - SceneKit 计算可视范围?

因此,根据标题,我试图弄清楚是否有一种计算场景边界的好方法,因为通常的帧/边界属性在上下文中并不真正起作用。

我基本上需要一种方法来根据 xFov/yFov/zNear/zFar 的相机设置检查对象是否已移出可视屏幕。到目前为止,我还没有真正找到这样做的好方法。我是否在这里忽略了任何 API 方法,还是需要手动计算?

我希望我在这里有意义,如果不是,请告诉我,我会进一步澄清。

0 投票
2 回答
1186 浏览

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

我已经为这些项目创建了存储库,因此任何有兴趣的人都可以看看(也许有些事情我不知道我做错了):

游乐场项目

OSX 项目

iOS 项目

如果您发现我做错了什么或者我可以如何做得更好,请告诉我!

谢谢大家的帮助!

0 投票
2 回答
3027 浏览

ios - 将屏幕外的 SCNScene 渲染到 UIImage 中

如何将屏幕外 SCNScene渲染渲染成UIImage?

我知道这SCNView提供了一种-snapshot方法,但不幸的是,这不适用于屏幕外视图。之前有人问过一个类似的问题,其中一个答案建议使用 OpenGL 从 OpenGL 读取位图数据glReadPixels,但这种方法对我来说不适用于屏幕外场景。

我尝试渲染到GLKView使用的上下文中SCNRenderer但没有成功。

0 投票
1 回答
550 浏览

ios - 是否有可见区域的边界?[SceneKit iOS]

我的问题在此屏幕截图中可见:

截屏

字母“M”和一艘船被切成两半。当我改变相机位置时,我可以看到它看起来像是“吃掉”我的节点的无形边界。

有什么想法可以做错吗?