我有三星Galaxy Tab 3(Android 4.2.2),深度缓冲似乎不起作用。任何其他设备都可以。我按如下方式创建上下文:
setEGLContextClientVersion(2);
setEGLConfigChooser(new MultisampleConfigChooser(...));
// ...
@Override
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
mValue = new int[1];
// Try to find a normal multisample configuration first.
int[] configSpec = {
EGL10.EGL_RED_SIZE, 5,
EGL10.EGL_GREEN_SIZE, 6,
EGL10.EGL_BLUE_SIZE, 5,
EGL10.EGL_DEPTH_SIZE, 16,
// Requires that setEGLContextClientVersion(2) is called on the view.
EGL10.EGL_RENDERABLE_TYPE, 4 /* EGL_OPENGL_ES2_BIT */,
EGL10.EGL_SAMPLE_BUFFERS, (!mDisableMultisampling ? 1 : 0)/* true */,
EGL10.EGL_SAMPLES, (!mDisableMultisampling ? 2 : 0),
EGL10.EGL_STENCIL_SIZE, 8,
EGL10.EGL_NONE
};
if (!egl.eglChooseConfig(display, configSpec, null, 0, mValue)) {
// ...
}
...
}
我尝试了以下事项:
投影矩阵正常(该程序适用于任何其他Android设备以及iOS)。
可能导致问题的原因是什么?
答案 0 :(得分:1)
“用户错误。”显然 glDepthMask 接受除Vivante之外的每个GPU上大于1的值。找出这个并将其强制为0或1解决了这个问题。
答案 1 :(得分:0)
许多人在使用三星设备的OpenGL ES驱动程序时遇到问题。他们是马车。检查您是否可以获得任何驱动程序更新。