如何改善基于透明画布的纹理的边缘质量?

时间:2013-05-16 05:07:47

标签: three.js

我有一个基于画布的纹理,透明背景,我用我的素材的漫反射颜色进行alpha混合。这是使用基于this SO answer的以下自定义顶点着色器代码完成的:

vec4 texelColor = texture2D( map, vUv );
gl_FragColor.rgb = mix(gl_FragColor.rgb, texelColor.rgb, texelColor.a);
vec3 surfDiffuse = mix(diffuse, vec3(1,1,1), texelColor.a);

我玩过纹理上的presultiplyAlpha设置。这就是我得到的:

如何摆脱纹理周围的黑暗边缘?

1 个答案:

答案 0 :(得分:0)

最佳解决方案是将纹理边缘渗透到图像编辑软件中的alpha(或者在这种情况下使rgb为纯色并在alpha中具有蒙版)。

所以代替:

rgb alpha
-------
BBB 000
BCB 010
BBB 000 //*B = black, C = texture color, 0 = transparent, 1 = opaque
你有:

rgb alpha
-------
CCC 000
CCC 010
CCC 000

这样你就会有完美的优势。