我有一个基于画布的纹理,透明背景,我用我的素材的漫反射颜色进行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设置。这就是我得到的:
如何摆脱纹理周围的黑暗边缘?
答案 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
这样你就会有完美的优势。