1

現在、シーンの奥行きをテクスチャにレンダリングしています。任意のポイントx、yでテクスチャの値を任意に取得したいと思います。使ってみましglReadPixelsたが、うまくいかないようで、最適な解決策でもないようです。可能であれば、メモリから直接テクスチャデータを読み取る方法を考えています。フレームバッファにデプステクスチャを使用してクワッドを実際にレンダリングする以外に、任意のx、yに対してその値を取得するというアイデアはありますか?

ちなみに、私はAndroidでJavaをOpenGLES2.0で使用しています。

GLES20.glGetIntegerv(GLES20.GL_FRAMEBUFFER_BINDING, mainBufferHandle, 0);
if(mainBufferHandle[0] < 0) mainBufferHandle[0] = 0;

GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, depthBufferHandle[0]);

GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_DEPTH_ATTACHMENT, GLES20.GL_TEXTURE_2D, depthTextureHandle[0], 0);

GLES20.glReadPixels(x, y, 1, 1, GLES20.GL_RGB, GLES20.GL_FLOAT, floatBuffer);
4

1 に答える 1

0

glReadPixelFBOに深度をレンダリングし、深度値を取得するために使用するだけだと思います。

于 2012-10-15T19:02:24.130 に答える