OpenGLES2.0 GL_POINT_SMOOTH

时间:2013-01-01 17:52:12

标签: opengl-es

我在片段着色器中使用此代码来舍入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?

1 个答案:

答案 0 :(得分:0)

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

两条小评论:

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