当 alpha 设置为 0 时 SCNPlane 上的奇数边界线

Odd border line on SCNPlane when alpha is set to 0

我在 SCNPlane 的边界上有一个奇怪的行为,我相信任何几何体都会有这种行为,看起来类似于 SceneKit - Remove stitching line in edges borders

我通过 SCNProgram 和片段 I 设置透明度 运行

float alphaBloom(float2 uv) {
uv *=  1.0 - uv.yx;   
float vig = uv.x*uv.y * 15.0;
vig = pow(vig, 3.95);
return vig;
}

看起来几何图形是用正确的 alpha 绘制的,并且在它的末尾用与边框相同的颜色绘制了一条线,但 alpha 为 1。

我相信顶点和片段着色器没问题,这对我来说更像是一个 set/setting 我还不知道的问题。

是否有任何标志可以摆脱这些?

漫反射透明的同一平面material没有使用程序工作正常。

不透明设置为是。 将它设置为 NO 将使 material alpha 常量,我希望它改变并在表面末端变为 0。我通过上面设置的 alphaBloom 函数来实现。

已解决。

为了去除边框上的多余线条:

  • .isOpaque = false
  • #pragma transparent 在程序的顶部
  • 更改您的代码,使其使用预乘 alpha: return float4(0.0, 0.00000001, 0.0, 1) 必须是 return float4(0.0 * 0.00000001, 1.0 * 0.00000001, 0.0 * 0.00000001, 0.00000001) 没有.isOpaque

HTH!