2011年9月20日火曜日

レイピッキング1 (OpenGL ES 2.0)

OpenGLで、マウスでクリックした位置にあるオブジェクトを知りたい場合、glReadPixelsとgluUnProjectを使用する。
しかし、Androidが採用しているOpenGL ES 2.0では、
GLES20.glReadPixels(x, y, 1, 1, GLES20.GL_DEPTH_COMPONENT, GLES20.GL_FLOAT, pixels);
はエラーとなる。glError()には、1280 (GL_INVALID_ENUM)が得られる。
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glReadPixels.xml
にあるとおり、GL_ALPHA, GL_RGB, GL_RGBAしか指定できないからだ。

0 件のコメント:

コメントを投稿