gpt4 book ai didi

opengl-es - OpenGL ES 渲染到用户空间内存

转载 作者:行者123 更新时间:2023-12-03 06:53:45 34 4
gpt4 key购买 nike

我需要在具有 PowerVR SGX 硬件的 ARM 设备上实现离屏纹理渲染。

一切都完成了(使用了像素缓冲区和 OpenGL ES 2.0 API)。唯一 Unresolved 问题是速度很慢glReadPixels功能。

我不是 OpenGL ES 方面的专家,所以我向社区询问:是否可以将纹理直接渲染到用户空间内存中?或者可能有某种方法可以获取纹理内存区域的硬件地址?其他一些技术(EGL 扩展)?

我不需要通用的解决方案,只需要一个适用于 PowerVR 硬件的解决方案。

更新:有关“慢速功能”的更多信息 glReadPixels '。将 512x512 RGB 纹理数据复制到 CPU 内存:

  • glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, &arr)需要 210 毫秒,
  • glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, &arr)需要 24 毫秒(GL_BGRA 不是 glReadPixels 的标准,它是 PoverVR 扩展),
  • memcpy(&arr, &arr2, WIDTH * HEIGHT * 4)需要 5 毫秒

纹理越大,差异也越大。

最佳答案

已解决。

如何强制 OpenVR 硬件渲染到用户分配的内存中: http://processors.wiki.ti.com/index.php/Render_to_Texture_with_OpenGL_ES#Pixmaps

一个例子,如何使用它: https://gforge.ti.com/gf/project/gleslayer/

完成所有这些之后,我可以最快 5 毫秒获得渲染图像。

关于opengl-es - OpenGL ES 渲染到用户空间内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472222/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com