如何解决iOS 14上的Arkit / SceneKit引发新的警告金属
自从升级到iOS14后,每当我向场景添加基本节点时,我都会收到金属警告。 我不使用任何阴影,仅使用标准材质。
2020-09-24 18:51:04.548764+0100 Arvie AR[383:7987] [Metal Compiler Warning] Warning: Compilation succeeded with:
program_source:95:26: warning: unused function 'reduce_op'
static inline float4 reduce_op(float4 d0,float4 d1)
^
program_source:581:26: warning: unused variable 'scn_shadow_sampler_ord_z'
static constexpr sampler scn_shadow_sampler_ord_z = sampler(coord::normalized,filter::linear,mip_filter::none,address::clamp_to_edge,compare_func::greater_equal);
^
这是我添加的最基本的节点:
let target = SCNTube(innerRadius: 0.0,outerRadius: 0.04,height: 0.003)
let basichAnchor = SCNNode(geometry: target)
basichAnchor.geometry?.firstMaterial?.diffuse.contents = UIColor.green
basichAnchor.castsShadow = false
它仍然有效,但警告未在iOS13中出现。 有人知道这到底意味着什么吗?
解决方法
问题在于,不仅有警告,而且与iOS 13上的同一应用程序相比,场景的加载速度也非常慢(这可能与着色器的编译时间有关)。 在iOS 14.2 beta 2上,警告消失了,但场景加载仍然非常缓慢。
以下是Apple开发者论坛上的相关讨论:https://developer.apple.com/forums/thread/659856
,这是由于Metal框架中的行为更改所致。现在,即使对于SceneKit的内部着色器,默认情况下也会记录着色器代码中的警告。您的代码没有错。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。