理论上两张一模一样的图片放在一起,对上面的图片不管怎么设置透明度,结果应该是不变的,因为根据混合模式的公式:
As x S + (1 - As) x D
因为S和D的像素值是一样的,所以结果应该就是等于S的颜色值。
这个用模拟器跑起来的结果是正确的。
但是网页里面,或直接在Creator里面,显示的结果是不对的,会比原图亮一点。效果如下:


这是不是H5引擎的BUG啊,这个问题太明显了,我现在被这个问题卡死了,因为我们的效果大量依赖于这个特性啊。
理论上两张一模一样的图片放在一起,对上面的图片不管怎么设置透明度,结果应该是不变的,因为根据混合模式的公式:
As x S + (1 - As) x D
因为S和D的像素值是一样的,所以结果应该就是等于S的颜色值。
这个用模拟器跑起来的结果是正确的。
但是网页里面,或直接在Creator里面,显示的结果是不对的,会比原图亮一点。效果如下:


这是不是H5引擎的BUG啊,这个问题太明显了,我现在被这个问题卡死了,因为我们的效果大量依赖于这个特性啊。
为啥要这样做呢,既然一样为什么要用两张图片呢?
因为在传统2DMMO里面,建筑会与人物有前后关系,人物走到建筑后面,会被建筑挡住,被挡住的身体部分会显示成半透明的,就是用这个技巧实现的:
先画不透明的建筑,再画人物身体,最后再画同一张建筑(但是这次是设为半透明的)
现在这样,建筑就会变亮。
而另外说起来,我们不管为什么要这样做,这个效果就是错误的,它是一个很基本的问题啊。
没有预剩的,我这样设也没有用的。
这个问题在模拟器下是正确的。只有Creator或网页里面是不正确的。
麻烦你们在自己的编辑器试一下,重现非常简单的。拜托
这是 WebGL 中混合的问题,不知道什么原因 WebGL 的半透明贴图会混合到 Canvas CSS 背景色,如果 Canvas 是透明的,会混合到页面背景色,你需要将 Canvas css background 改为黑色。
如果你将背景改为红色,会发现透明图透着点红。。。很奇葩的问题
为了让你有更深刻的理解,我放一张我们在做的MMO的效果图,大概就能明白了:

请问在哪里设置呢,麻烦详细一点,感谢。
我发现我们的模版中 css 已经指定了 background-color,只是编辑器和 preview 没有设置,你可以试试发布看看有没问题,我会将 preview 和编辑器内部设置修正一下
嗯,发布后确实是没有问题的,太感谢了。
另外,发布的时候,background-color能不能自定义









最近在查webmobile下,透明WebView的问题。请问是否可以参照这个帖子 (Blending with HTML background in WebGL - Stack Overflow 的方案,使用 gl.blendFuncSeparate) 单独设置透明通道的混合模式呢?