PDA

View Full Version : glReadPixel



guju
06-04-2002, 09:56 PM
Hi!
I want to do picking with color! I did the following code:
GLint pixel[3];
(void) glRenderMode(GL_SELECT);
glBegin(GL_POINTS);
glPointSize(1);
for(int i=0;i<numVertices;i++){
glColor3ub( i&0xff, (i>>8)&0xff, (i>>16)&0xff );
glVertex3f(vertices[i*3],vertices[i*3+1],vertices[i*3+2]);
}
glEnd();
glReadPixels( xRot_old, yRot_old,1, 1, GL_RGB, GL_UNSIGNED_BYTE, &pixel );
int t = pixel[0] + pixel[1]*256 + pixel[2]*65536;
But it does not really work! Whats wrong??
Juergen

Bob
06-05-2002, 01:12 AM
But it does not really work

Now that was a detailed description of your problem.

A problem I can see is that you pass an array of three integers, but you tell OpenGL that it's an array of unsigned chars. OpenGL will then store the three components as unsigned characters in the first three bytes of the first integer in the array.

kon
06-05-2002, 02:08 AM
Well, don't change to GL_SELECT render mode and put glPointsize outside glBegin glEnd.

kon