Objective-C, Objective-C++, C++ and Scene Kit
Objective-C, Objective-C++, C++ and Scene Kit
我有一个混合了纯C++和Objective-C++的项目,以便合并一些C++库。
我尝试在组合中添加一些基本SCNScenes
。(我的意思是基本上有一个盒子节点的场景,仅此而已)。每次我收到错误时:
Assertion failed: (renderSize.x != 0), function -[SCNRenderContextMetal _setupDescriptor:forPass:isFinalTechnique:], file/BuildRoot/Library/Caches/com.apple.xbs/Sources/SceneKit/SceneKit-332.6/sources/Core3DRuntime/NewRenderer/SCNRenderContextMetal.mm, line 688.
有谁知道是什么原因造成的,如果是这样,我该如何绕过它?
编辑:
在我的ViewController.mm
中,我得到了:
self.sceneView = [[SCNView alloc] initWithFrame:frame];
self.sceneView.scene = [SCNScene scene];
SCNNode *cube = [SCNNode nodeWithGeometry:[SCNBox boxWithWidth:1.0 height:1.0 depth:1.0 chamferRadius:0]];
cube.geometry.firstMaterial.diffuse.contents = [UIColor redColor];
[self.sceneView.scene.rootNode addChildNode:cube];
[self.view addSubview:self.sceneView];
听起来像是使用情节提要启动 SceneKit 场景。
如果是这样,最新版本的 SDK 现在要求您对视图设置约束,否则它们最终会变得微不足道。 它可能只是在 SceneKit 场景上设置约束的功能。
如果帧无效,您还需要将其设置为有效值。 例如
CGRect frame = [[UIScreen mainScreen] applicationFrame];
我发现,如果您将SCNView
帧设置为 CGRectZero
,SceneKit
会抛出适合。必须至少有 1 个像素的渲染空间。就这么简单。
相关文章:
- 将 QGraphicsView 或 Scene 转换为 XML/JSON
- 从Blender获取信息C++(DeviceContext,RenderContext,Scene-Informatio
- Detect Windows Kit 8.0 and Windows Kit 8.1 SDKs
- Objective-C, Objective-C++, C++ and Scene Kit
- 使用QGraphics Scene显示图像
- 如何在运行时(启动)更改Open Scene Graph插件目录
- 如何在Eclipse Android Native Development Kit(NDK)中设置C++断点