碎片丢弃留下奇怪的像素图案

Fragment discard leaves strange pixel pattern

我在 SCNShadable 片段入口点中使用了一个 OpenGL ES 片段来丢弃对象的一部分。我得到这个结果:

那是顶点颜色还是法线?一直试图摆脱他们,但没有成功。片段片段如下所示:

varying float clipFragment;

#pragma body
if (clipFragment == 1.0) {
    discard;
}

似乎错误在于我在这个小测试中如何选择要丢弃的几何点,因为如果我说剪切所有内容,它是不可见的。

varying float clipFragment;

#pragma body
if (_geometry.position.z >= 0.0) {
    clipFragment = 1.0;
} else {
    clipFragment = 0.0;
}

有谁知道如何在 SceneKit 的上下文中去除这些像素?

舍入误差

通过更改片段中的测试,它起作用了

varying float clipFragment;

#pragma transparent
#pragma body
if (clipFragment > 0.0) {
    discard;
}