WebGL中的gl_PointSize为零

问题描述:

我有一个设置为gl_PointSize = mix(0. , 5. , step(foo,bar));的顶点着色器。我的Mac与英特尔高清显卡5000,只呈现5点,而不是0点。另一个mac与某种radeon渲染零,就好像它们一样。WebGL中的gl_PointSize为零

我读过gl_PointSize并且不明白gl_PointSize = 0.;期望的行为是什么,并且不理解关于别名和舍入的位。

如果我想“隐藏”某些点,我是否应该依靠gl_PointSize = 0.;甚至没有栅格化点,或者我应该使用其他的东西?

两件事情浮现在脑海中:

//frag 

... 
if(vSomeVarying < 0.5) discard; //but why even rasterize, and this is still like rendering all the points regardless of the discard? 
... 


//vert 

if(someValue < 0.5){ 

    gl_Position.z = 2.; //should clip it? 

} 
+1

看起来像您的第二个解决方案,将Z(或X或Y)设置在剪辑空间之外即可。 – gman

如果我想 “隐藏” 某些点上,我应该依靠gl_PointSize = 0;甚至没有栅格化的要点,或者我应该使用别的东西?

使用别的东西,因为在GLES 2.0.25上P51:

如果写入gl_PointSize值小于或等于零,结果是不确定的。

强制垂直切割作品。