代码之家  ›  专栏  ›  技术社区  ›  Prabhat

在Android 1.6中,glreadPixel返回0

  •  0
  • Prabhat  · 技术社区  · 14 年前

    我使用min3d将*.obj格式的3d模型导入android 1.6。但是,我需要检测我触摸的是哪张脸。所以我打算用下面的代码来选择颜色。

    FloatBuffer pixel = FloatBuffer.allocate(4);
                    IntBuffer viewport = IntBuffer.allocate(4);
                    gl.glGetIntegerv(GL11.GL_VIEWPORT, viewport);
                    gl.glFlush();
                    viewport.position(0);
                    gl.glReadPixels((int) x, (int) (viewport.get(3) - y), 1, 1,
                            GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixel);
    
                    Log.d("Pixel Values:", pixel.get(0) + " " + pixel.get(1) + " "
                            + pixel.get(2) + " " + pixel.get(3));
    

    其中x和y是从ontouch侦听器接收的坐标。执行此代码时,我总是在日志中获取0 0 0。如何解决这个问题?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Dr. Snoopy    14 年前

    我不是android的用户,但是你将floatbuffer传递给glreadpixels,类型是gl_unsigned_byte,也许你想要bytebuffer或切换类型为gl_float。