2014-07-14 8 views
1

I는 다음과 같은 간단한 단편 쉐이더있다 : I 프레임 버퍼 개체를 사용하는 렌더링 텍스처있어비대칭 부정확 출력

precision highp float; 
main() 
{ 
gl_FragColor = vec4(0.15, 0.15, 0.15, 0.15); 
} 

한다. 프레임 버퍼의 값을 다시 판독 할 때 난 다음 얻을 :

38, 38, 38, 38, 39, 39, 39, 39,38, 38, 38, 38, 39 등

0.15 * 255 = 38.25 그래서 내 데스크탑 GPU (Intel 4000)와 Tegra 3에서 모든 픽셀에 대해 균일하게 38을 얻을 것으로 기대합니다. 누군가가이 문제에 대해 밝힐 수 있으면 기쁠 것입니다. Mali-400MP는 삼성 Galaxi s2, s3 및 s3 mini에서 사용되므로 모바일 장치 용 GPGPU를 사용하는 모든 사용자에게 중요합니다.

답변

2

출력이 디더링되고있는 것처럼 보입니다. 한 픽셀에서 남겨진 오류가 반올림 된 다음 픽셀로 옮겨지기 때문입니다. GL_DITHER가 OpenGL에서 기본적으로 켜져 있음을 기억하고 glDisable (GL_DITHER)을 사용해보십시오.

+0

전화하세요. 나는이 패턴이 다른 플랫폼 (내 데스크탑 GPU 및 Tegra 3 ...)에서 어떻게 보이지 않았는지 방황하고 있습니다. –