如何在lua中使用luaglut函数glReadPixels()?

我正在使用luaglut在lua中进行一些图形处理。我在与此函数glReadPixels挣扎,特别是它的最后一个输入参数 GLvoid *pixels

void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);

pixels是一个指针类型,因此在lua中它是 lightuserdata类型。我成功地在lua中获取了一个lightuserdata类型的变量,比如说 img,根据 这篇帖子。然而,当我通过调用以下语句来获取我想要抓取到 img 中的帧之后,我什么也做不了:

glReadPixels(0, 0, 250, 250, GL_RGB, GL_UNSIGNED_BYTE, img)

我尝试通过ffi在lua中创建一个相同的结构,并将这个 img 转换为 torch.Tensor类型,但速度太慢了,因为我必须逐像素分配值。

因此,我在这里问有没有更好的方法来使用这个glReadPixels函数来获取 img,而不是我采用的这个麻烦的方法?tabletorch.Tensor 类型的 img 都可以。非常感谢!

点赞