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...]
}

1 つ目は、デプス バッファーが正常に初期化されなかったが、setEGLConfigChooser がエラーを返さないこと、2 つ目は、レンダリング ステートを間違ってセットアップした場合です。コードの何が問題になっていますか?

ところで。私はNativeActivityプロジェクトでそれを機能させましたが、Javaで同じことをすることはできません:(

前もって感謝します!

4

0 に答える 0