Like in topic. I want to make very accurate collision system, so I'm trying to use pixel perfect collision. I think I tried to find a solution almost everywhere, but I haven't found any satisfactory solution. I am writing in Java.

This is my current algorithm:

Code :
protected boolean accurateTest(int object1, int object2) {
        glClear(GL_STENCIL_BUFFER_BIT);
 
        glStencilFunc(GL_ALWAYS, 1, 1);
        glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
 
        Core.List.get(object1).Draw;
 
        glStencilFunc(GL_EQUAL, 1, 1);
        glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
 
        glBeginQuery(GL_SAMPLES_PASSED, occquery);
 
        Core.List.get(object2).Draw;
 
        glEndQuery(GL_SAMPLES_PASSED);
 
 
        do {
            glGetQueryObject(occquery, GL_QUERY_RESULT_AVAILABLE, samples);
        } while (samples.get(0) == 0);
 
        glGetQueryObject(occquery, GL_QUERY_RESULT, samples);
 
        return samples.get(0) > 0;
    }

This algorithm works well, but it has one very big drawback - I can only specify the number of pixels that have collided, but not collision coordinates. Outside that, I'm not sure this will work outside screen.

Now the question - is it possible to make pixel perfect collision (or at least very accurate collision detection for irregular shapes) and get coordinates of pixel(s) that have collided? If yes, I would be very grateful if someone will give a link to examples or show how can I handle this problem.