WebGL中的gl_PointSize为零

时间:2017-04-19 02:02:10

标签: webgl fragment-shader vertex-shader glsles

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

我已经阅读了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 个答案:

答案 0 :(得分:2)

  

如果我想“隐藏”某些点,我应该依赖gl_PointSize = 0。甚至没有光栅化这些点,还是我应该使用别的东西?

使用其他内容,因为在p51上的GLES 2.0.25

  

如果写入gl_PointSize的值小于或等于零,则结果未定义。

强制修剪顶点有效。