我想在 OpenGL 中获得像素颜色或绘制的对象。例如,如果我在上下文中绘制一个圆,它将被保存并绘制在一个对象类中。它将具有宽度和高度。如果我点击圆圈,它应该返回颜色。但是......如果我点击对象的角落,它应该返回 alpha 0 让我知道我点击了圆形对象,但在对象的透明区域。我需要绘制到像素缓冲区对象吗?
void Circle::Display()
{
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, circle_vectors);
glColorPointer(4, GL_FLOAT, 0, circle_colors);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY); // enables the color-array.
glDisable(GL_BLEND);
glPopMatrix();
}
bool Circle::IsTransparent(int x, int y)
{
//We clicked on the circle object. Is the pixel transparent?
}