我使用两个三角形和片段着色器绘制一个圆圈。我可以在由三角形形成的正方形的中间绘制一个漂亮的圆圈,但由于某种原因,圆圈被剩余的白色三角形包围并且不透明。我希望边缘是透明的,这样两个圆圈就能很好地叠加在一起。
这是我的片段着色器代码:
void main() {
float diff = 1.0 / vscale.x;
float dist = distance(center, origin);
float step = smoothstep(radius - diff, radius + diff, dist);
gl_FragColor = mix(vec4(1.0, 0.0, 0.0, 1.0), vec4(1.0, 0.0, 0.0, 0.0), step);
}
答案 0 :(得分:2)
编辑:也就是说,我没有设置混合功能,如下所示:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);