首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >失败的断言‘顶点函数’不能是零错误,在iPad iOS 9.0.2中加载iPad场景时不能出错

失败的断言‘顶点函数’不能是零错误,在iPad iOS 9.0.2中加载iPad场景时不能出错
EN

Stack Overflow用户
提问于 2015-10-22 07:19:12
回答 2查看 1.9K关注 0票数 1

当我在iPad上测试我的应用程序时,当我看到屏幕上的节点时,当我的SCNScene被加载时,我遇到了一个令人沮丧的错误。我不知道这会是什么

代码语言:javascript
复制
/BuildRoot/Library/Caches/com.apple.xbs/Sources/Metal/Metal-54.31/Framework/MTLRenderPipeline.mm:973: failed assertion `vertexFunction must not be nil.

我不直接使用金属,也不使用OpenGL,只使用SceneKit。我不太明白他们的意思,但我听说他们不知何故被人利用了。我试图通过“强制”OpenGL来修复它,正如我在某个主题中所读到的,它可能会有所帮助:

代码语言:javascript
复制
scnView = GGBattleScene2(frame: view.frame, options: [SCNPreferredRenderingAPIKey : SCNRenderingAPI.OpenGLES2.rawValue])

场景出现了,但很多元素只是变得看不见了,或者没有渲染,我不知道。实际上,除了我绘制的支撑轴之外,所有这些都是:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-24 02:29:20

嗯,我发现这个错误只是因为我的SCNNodes有一个SKScene设置了他们的材料,里面有一个SKSpriteNode。这本身并不是一个问题,因为我在早期版本的xCode中运行了这个程序,并且运行得很好。由于某种原因,实际版本的编译器在那里出错了。我之所以知道这一点,是因为我在xcode 6.3.9中使用了相同的代码,而且它起了作用。

当我更改为SKSpriteNode而不是SKScene本身设置相同纹理的材质时,它起了作用。

票数 2
EN

Stack Overflow用户

发布于 2015-11-30 10:41:39

我遇到了类似的错误,得到了完全相同的控制台输出:

代码语言:javascript
复制
/BuildRoot/Library/Caches/com.apple.xbs/Sources/Metal/Metal-55.1.1/Framework/MTLRenderPipeline.mm:973: failed assertion `vertexFunction must not be nil.'

我检查了我的项目Scheme配置,并发现"Metal验证=已启用“是根本原因。禁用它("Metal验证=禁用“),然后bug消失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33275327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档