1
glReadPixels를 사용하여 간단한 피킹 함수를 구현하려고했으나 하나의 색을 클릭하면 해당 객체를 클릭 한 위치에 따라 다른 값을 다시 얻었습니까? 특별한 조명 등이 없습니까? 무슨 일이야? 경우에 따라 모든 0이 반환됩니다. 나는 모든 것을 꺼 냈지만 (질감 등) 여전히 기쁨은 없습니다.iPhone OpenGL ES : glReadPixels가 작동하지 않습니다.
이 함수는 클릭 한 픽셀의 색상을 반환한다고 생각 했습니까?
- (void)getPixelColour:(CGPoint)point {
Byte pixelColour[4];
glReadPixels(point.x, point.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixelColour);
NSLog(@"%d %d %d", pixelColour[0], pixelColour[1], pixelColour[2]);
}
업데이트 :이 그것을 해결하기 위해 추가 :
glGetIntegerv(GL_VIEWPORT, __viewport);
point.y = (float)__viewport[3] - point.y;
CGPoint in Touch 좌표는 무엇입니까? OpenGL upsidedown을 렌더링하고 있습니까? OpenGL은 아래에서 위쪽으로 렌더링되고 위쪽에서 아래쪽으로 닿는 것을 기억하십시오. –
좋은 지적입니다. 그렇습니다. cgpoint가 접점이므로, 어떻게 든 반전해야합니까? – Burf2000
에드 문제를 해결하는 데 도움이되는 답변을 귀하의 의견을 게시하십시오! – Burf2000