Cannot pick my objects Correctly

Hello,

I want to implement picking into my app, now it works almost but the biggest problem is, that i have to click on a complete different position (than the object) to pick it.

Funny thing here: I’ve tested it for one of my rendered Meshes and with every new start, I cannot pick the same object from the same point as before. As I figured out, there are 3 positions (different y-axis) which are randomly used for being the pick-able object. To mention here is, that one of these 3 positions is the correct one, the one where the object is actually rendered.

My code is like following:


int selectBuf[] = new int[BUFSIZE];
        selectBuffer = org.lwjgl.BufferUtils.createIntBuffer(BUFSIZE);
        GL11.glSelectBuffer(selectBuffer);
        GL11.glRenderMode(GL11.GL_SELECT);
        
        GL11.glInitNames();
        
        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glPushMatrix();
        GL11.glLoadIdentity();
    
        //current viewport
        GLU.gluPickMatrix(Mouse.getX(), Mouse.getY(), 5f, 5f, getViewport());
        
        GLU.gluPerspective(30f, aspectRatio, 1f, 30f);
        
        GL11.glMatrixMode(GL11.GL_MODELVIEW);

       // Rendering scene
       .................................

       GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glPopMatrix();
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glFlush();
        
        int numHits = GL11.glRenderMode(GL11.GL_RENDER);
        processHits(numHits);
 

What can be to problem here?? Is it possible to test it somehow, I mean with that to actually render the object at the postion where it can be picked.

I really don’t see the problem, especially the perspective is exactly the same as in the normal render.