【发布时间】:2014-10-02 06:44:11
【问题描述】:
我正在使用 Hiero 生成的 BitmapFont。我按照这个伟大的指南https://github.com/libgdx/libgdx/wiki/Distance-field-fonts 正确使用距离场。 我还使用指南中提供的着色器。一切都很好。
接近尾声,指南中提到在距离场抗锯齿之上,应该很容易从提供的着色器中为字体添加轮廓。它与调整 distance 参数有关。我相信对于知道如何处理着色器的人来说这很容易。但我没有。
这是片段代码
#ifdef GL_ES
precision mediump float;
#endif
uniform sampler2D u_texture;
varying vec4 v_color;
varying vec2 v_texCoord;
const float smoothing = 1.0/16.0;
void main() {
float distance = texture2D(u_texture, v_texCoord).a;
float alpha = smoothstep(0.5 - smoothing, 0.5 + smoothing, distance);
gl_FragColor = vec4(v_color.rgb, alpha);
}
这里是顶点代码:
uniform mat4 u_projTrans;
attribute vec4 a_position;
attribute vec2 a_texCoord0;
attribute vec4 a_color;
varying vec4 v_color;
varying vec2 v_texCoord;
void main() {
gl_Position = u_projTrans * a_position;
v_texCoord = a_texCoord0;
v_color = a_color;
}
从这里如何使用着色器添加轮廓?
【问题讨论】: