OpenGL でピクセル カラーまたは描画オブジェクトを取得したいと考えています。たとえば、コンテキストに円を描画すると、オブジェクト クラスに保持されて描画されます。幅と高さになります。円をクリックすると、色が返されます。しかし...オブジェクトの角に向かってクリックすると、アルファ0が返されて、円オブジェクトをクリックしたことを通知する必要がありますが、オブジェクトの透明な領域にあります。Pixel Buffer オブジェクトに描画する必要がありますか?
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?
}