2017-04-19 25 views
0

gl_PointSize = mix(0. , 5. , step(foo,bar));을 설정하는 버텍스 쉐이더가 있습니다. 인텔 HD 그래픽 5000이있는 내 Mac은 0이 아닌 5 점만 렌더링합니다. radeon과 같은 종류의 다른 Mac은 0 인 것처럼 렌더링합니다.WebGL에서 gl_PointSize가 0입니다.

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

답변

2

내가 특정 지점을 "숨길"싶은 경우에, 나는 gl_PointSize = 0;에 의존한다 점을 래스터 화하지 않거나 다른 것을 사용해야합니까? P51 인해 GLES 2.0.25의 다른

사용 무언가 : gl_PointSize에 기록 된 값이 제로 이하의 경우

는, 결과는 정의되지 않습니다.

강제로 잘리는 작업.