问题标签 [scnscene]
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.
ios - Swift、SceneKit 和相机位置
我正在开发一个显示 3D 人体的应用程序 - 在 SceneKit 编辑器中,我已将相机设置为指向模型。
正如我设置的sceneView.allowsCameraControl = true,用户可以通过简单的手势在对象周围移动、放大和缩小。
为了垂直移动,我实现了一个 UISlider - 我不希望用户用两个手指手势垂直平移。
在滑块操作中,我执行以下操作:
当我在加载 ViewController 后更改滑块位置时,这可以正常工作。但是一旦我通过手势旋转或缩放模型,滑块就不再显示效果 - 因此我不能再以编程方式更改相机节点的位置。
有谁知道我该如何解决这个问题?
macos - macOS Mojave 中的 SCNView 和处理器加载问题
我的 macOS 程序中的 Mojave 和 SCNView 有问题。但是,我也测试了最简单的项目,发现同样的问题!
因此,如果我们使用 xib 文件而不是故事板启动新的 macOS 项目,并将 NSTabView(带有两个 TabView)放在窗口中。然后,当我们将 SCNView 放置在程序启动时未激活的 TabView 中时,我们在构建和启动程序后将拥有 100% 的处理器负载。而且,在我们用 SCNView 打开 TabView 之前,它一直保持 100%,然后处理器负载下降到零。
这不应该是这样的,这个最简单的项目没有自定义代码,只是加载视图!
在以前的 macOS 中没有看到这样的情况
ios - CATextLayer 无法在 SCNNode 上正确渲染
我有一个 CALayers 层次结构,我将其设置为我的 SCNNode 材质的漫反射属性。我使用以下代码对场景的当前状态(只有一个节点)进行快照,以将其作为 PNG 保存到文件中:
通常这可以正常工作,按预期渲染节点,但大约 25-50% 的时间,我作为返回层的子层的任何 CATextLayer 都self.createLayer()
不会渲染文本。所有其他图层似乎每次都渲染得很好。
例如,应该看起来像这样的图像:
图层本身正在渲染,我可以通过更改文本图层的背景颜色来确认:
这似乎只是在创建图层后立即发生的问题。如果我异步调度渲染代码,即使没有添加任何延迟,一切都会按预期呈现:
上述解决方法似乎很老套,我不相信它是可靠的。另外,我宁愿不强制我的调用点以异步方式调用该方法。
SceneKit 或 CoreAnimation 中是否有我缺少的属性或方法可以用来确保在尝试将其渲染到图像之前完全渲染图层?
ios - 函数仅在 scenview (Swift4) 上放置 1 个 arkit 对象节点
我下面的代码应该将用户创建的 arkit 对象放在 scenview 中,但它不起作用。它放置 1 个对象,不能再放置任何其他对象。我注释掉的代码完美地放置了 scn 形状的球,并且在调用函数时与用户请求的一样多。但是它只放置 1 个用户创建的对象,我想放置几个对象。
ios - SceneKit 内存泄漏
VC
转到with后,应用程序的内存增加了scnView
。我已经使用deinit
并设置geometry
为,nil
但它没有帮助。我在堆栈上看到了一些关于使用deinit
来解决这个问题的提示,但它对我不起作用。每次我用scnScene
SceneKit 回到这个 ViewController 时,内存都会增加:太多内存持续存在
ios - 如何在给定 scnvector3 点数组的情况下创建倾斜平面
我正在尝试使用已转换为 scnvector3 点的给定 3d 坐标点数组在 scenekit 中创建平面形状。我使用贝塞尔路径来创建 2d 平面,我想知道是否有一种简单的方法可以在真实 3d 空间中绘制平面
swift - 在 macOS 中结合 3D 和 2D
我需要在 3D 场景之上绘制 2D 图例、2D 框架等。在这里,我试图在 3D 球体顶部显示 2D 标签,以便标签始终面向用户,即使他们旋转场景。
我正在使用 SCNView 绘制 3D 场景(=> 工作正常) 我正在使用它的 NSView 父级(子类以覆盖其绘制功能)来显示 2D 文本(=> 不显示任何内容)
(var twoDCoordinates:CGPoint 是外部的)
在我的视图控制器中:
=> 3D球体正确显示;两个D坐标是正确的
在 TwoDView:NSView 类中(即场景视图容器)
=> 函数 draw 被调用,但没有显示文本。
我希望文本“球体标签”显示在 3D 球体旁边,但只显示 3D 场景。即使调用了函数 draw。