(Android)我无法在opengl es2中进行深度缓冲

时间:2012-08-24 02:40:22

标签: android opengl-es-2.0

我已经花了几个小时试图让深度缓冲工作,但没有运气。 初始化代码:

class MyGLSurfaceView extends GLSurfaceView {
public BasicGLSurfaceView(Context context) {
    super(context);
    [...]
    setEGLContextClientVersion(2);
    setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    [...]
    m_rend = new ViewRenderer(context, m_app);
    setRenderer(m_rend);
}

渲染功能如下所示:

public void Render() {
        [...]
    GLES20.glClearColor(m_backColor.x(), m_backColor.y(), m_backColor.z(), 1.0f);
    GLES20.glClearDepthf(1.0f);
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
        [...]
    GLES20.glEnable(GLES20.GL_DEPTH_TEST);
    GLES20.glDepthFunc(GLES20.GL_LEQUAL);
    GLES20.glDepthMask(true);
    GLES20.glDepthRangef(m_depthNear, m_depthFar);
        [...]
        [...rendering...]
}

我认为有两件事可能是错误的:首先是深度缓冲区没有成功初始化,但是setEGLConfigChooser没有返回错误,第二条如果我不正确地设置渲染状态。我的代码出了什么问题?

顺便说一句。我已经在NativeActivity项目中使它工作了,但我不能在java中做同样的事情:(

提前致谢!

0 个答案:

没有答案