我该如何在屏幕上获取距离点? 这是代码:
glReadPixels(p.x, p.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixelBuffer);
所有绘制都很完美,但是我无法拉远点。
我记录深度,也尝试颜色。颜色只读有以下参数:
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
// preparing and drawing
if (testDepthPoint.x != 0) {
[self testDepth:testDepthPoint];
testDepthPoint = CGPointZero;
}
}
- (void)testDepth:(CGPoint)p {
GLfloat depth = -99.0;
glReadPixels(p.x, p.y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
NSLog(@"Depth %f", depth); // always log -99.0
}
使用GL_FLOAT时,无法读取rgb。 我也尝试在绘制后获取值:
{{1}}
不适用于我
答案 0 :(得分:0)
除了您应该查看depth
而不是pixelColor
之外,您还需要了解时间,该时间应该在框架完成绘制之后,再提交下一个框架。
答案 1 :(得分:0)
OpenGL ES 3.0不支持从缓冲区读取GL_DEPTH_COMPONENT
。此处更多信息: