1
我試圖用glReadPixels實現一個簡單的拾取功能,但是當我點擊一種顏色的對象時,根據點擊該對象的位置,我得到不同的值。沒有特殊照明等?這是怎麼回事?有時全部零都返回。我把所有東西都關掉了(紋理等),但仍然沒有快樂。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在觸摸座標?你是否渲染OpenGL顛倒?請記住,OpenGL從下到上呈現,並且從上到下呈現出來。 – 2010-12-17 01:26:36
好點,是的,cgpoint是觸點,所以我必須以某種方式反轉它? – Burf2000 2010-12-17 08:04:14
Ed在您幫助解決問題時發佈您的評論作爲答案! – Burf2000 2010-12-17 09:40:24