我有以下简单片段着色器:
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所以我希望所有像素统一得到38,我可以在桌面GPU(intel 4000)和Tegra 3上得到。 如果有人能对这个问题有所了解,我会很高兴的。 对于任何为移动设备进行GPGPU的人来说,至关重要,因为Mali-400MP用于三星Galaxi s2,s3和s3 mini。
答案 0 :(得分:2)
看起来您的输出正在被抖动,因为从一个像素遗留的错误被转移到下一个被舍入的位置。请记住,在OpenGL中默认启用GL_DITHER,尝试执行glDisable(GL_DITHER)。