Я знаю, что есть много вещей, даже в stackoverflow об этой теме / проблеме, но я действительно не могу понять. Я в этой проблеме уже несколько часов.
public Vector select(float x, float y)
{
int viewport[] = { 0, 0, width , height};
float realY = ((float) ( height) - y);
float near[] = { 0.0f, 0.0f, 0.0f, 0.0f };
float far[] = { 0.0f, 0.0f, 0.0f, 0.0f };
GLU.gluUnProject(x, realY, 0, mg.mModelView, 0, mg.mProjection , 0, viewport, 0, near, 0);
GLU.gluUnProject(x, realY, 1, mg.mModelView, 0, mg.mProjection, 0, viewport, 0, far, 0);
float xr = near[0] / near[3];
float yr = near[1] / near[3];
float zr = near[2] / near[3];
return new Vector(xr,yr,zr);
}
/**
GLU.gluLookAt( gl, me.position.x, me.position.y, me.position.z, me.position.x, 0, me.position.z+1, 0, 1, 0 );
**/
1) Есть ли еще возможность прочитать буфер z с помощью
glReadPixels(winX, winY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, winZ);
Класс GL11Extension реализует константу GL_DEPTH_COMPONENT для glReadPixels или как?
http://developer.android.com/reference/javax/microedition/khronos/opengles/GL11ExtensionPack.html#GL_DEPTH_COMPONENT
2) Или можно рассчитать мануал z-буфера с моими позициями glulookat?
3) Или как рассчитать столкновение с ближним и дальним положением.
Спасибо, что прочитали:)