我最近遇到了一个非常奇怪的问题,我很好奇是否有其他人遇到过这个问题,或者是否有人可能会发现我的 WebGL alpha 混合功能存在问题。
当启用 alpha 混合并结合帧缓冲区渲染时,Safari 14 似乎没有渲染任何内容。它曾经在 Safari 13 中按预期工作,它也适用于所有其他主要浏览器(经过测试的 Chrome、Edge、Firefox)
演示: https ://jsfiddle.net/flek/rc6zbk0d/58/
您应该会看到三个红点和一个三角形,它们会在 2.5 秒后变为紫色。这适用于 Chrome、Firefox、Safari 13,但不适用于 Safari 14!
似乎让 Safari 14 关闭的关键部分如下(第 89 行和第 146 行)。
blend: {
enable: true, // This prevents Safari v14 from rendering the points.
func: {
srcRGB: 'src alpha',
srcAlpha: 'src alpha',
dstRGB: 'one minus src alpha',
dstAlpha: 'one minus src alpha',
},
},
这可能是 Safari 本身、Regl 或我的代码中的错误。我很好奇是否有人看到混合功能 + 帧缓冲区渲染的问题。