WebGL:如何消除图像应用扭曲效果后透明边缘的暗边?
纹理处理问题
- 演示地址:Codepen平台上的wvmjzwe项目
- 配有示意图,说明:左上为原图,右上为处理后结果,右下为提取颜色时的坐标取整情况
现有一种解决方案,但会降低结果的平滑度:
coord = floor(coord) + .5;
待解决疑问
- 如何实现更优的效果?能否在计算平均颜色时忽略透明像素的颜色?
- 是否存在未被发现的相关设置?
已更新演示效果
经过以下代码调整后,效果有所提升:
vec4 color = texture2D(texture, coord / texSize); vec4 color_ = texture2D(texture, coordNoRound / texSize); if(color_.a != color.a) { color.a *= color_.a; }
调整后的效果对应预览图左下区域,但这并非理想方案,仅为部分修复,核心问题仍待解决。
内容的提问来源于stack exchange,提问作者Андреслав Козлов
相关产品推荐
相关产品推荐

