WebGL - Rendering 出问题

@jare 大哥请帮忙!

没法修复吗?

什么问题你都没有描述啊。。。

问题很明显,WEBGL下中间有一个没渲染好

不是没渲染好,是 webgl 下对半透明的混合运算导致的,,你需要修改的是,这样的话中间那个就是 additive 渲染。否则 webgl 下,如果底色是半透明,上面也是半透明,在 src alpha + one minus src alpha 计算之后就容易有这样的透明度混合问题

我说你没有描述问题是指,你没有描述清楚,你的问题表现和预期表现,并不是我看不到那张图的差别。
提问题的时候不能总觉得自己和别人 on the same page,尽可能表述清楚,才能够有效率

抱歉 我没晓得问题没说清楚。请问为何 native 上是 OK 的?这样有双膝的 behaviour, 跨平台该要怎么处理?可以给些意见吗?

这只是简单的问题显示,我们多用了以一尘 opacity 一半的黑 node 来做压黑的效果。在 web 版,这问题蛮明显的。

我回头想了一下可能还是有问题,你能不能给一个你那边真实游戏中的用例给我看一下?

公司的项目没法暴露出来,但我可以尝试弄些凡景给你。请等等

嗯,不用完整项目,普通的 prefab,或者搭一个简单的测试场景就可以

看看这:

webGLRenderBug.zip (572.1 KB)

native simulator:

webgl:

我这两天研究下给你回复哈

好的 谢谢协助

引擎应该做下面的修改:

https://github.com/cocos-creator/engine/pull/1774

将 WebGL context 的 alpha 参数设置为 false 即可

2赞

谢谢你!:grin: 我测了有用。这改何时上线啊?

1.5.2 ba

这问题在 browser 是修复了,可是在 editor 里的 preview 还是有一样的问题。v.1.6.0

Editor 里面没办法,我们要用半透明场景来显示背后的网格

可以解释一下那网格若 fix 了这 bug 为何实现不到呢?如果没办法,我本身也觉得颜色的准确性比那网格重要。

其实这个问题的根本原因是 blend function 最终渲染到目标上时,不应该覆盖目标的 alpha。可以考虑在编辑器下用 blendFuncSeparate 替代 blendFunc。
(我觉得网格比颜色重要,否则背景全黑太丑了)

背景不可用不依赖现有 blending 的方法实现吗?