0

我在片段着色器中使用此代码来圆化 GL 点的边缘

precision mediump float;
varying vec4 fragColor;

void main() {

    gl_FragColor = fragColor;

    if(length(gl_PointCoord-vec2(0.5)) > 0.5)
    discard;

} 

问题是,舍入应用于上下文中绘制的每种类型的图元,包括三角形条带。有没有办法添加一个 if 语句来限制舍入到只有 GL_POINTS?

4

1 回答 1

0

我认为您应该为其他原语使用新的着色器。

两个小评论:

  • 您是否考虑过使用小纹理(包含一个圆圈)而不是进行这样的计算?它可能会快一点,但显然取决于细节。
  • 还要尽量避免使用discard关键字。它可能会对性能产生负面影响。例如,您可以将当前丢弃的那些片段的 alpha 值设置为 0。
于 2013-01-01T17:58:25.967 回答