【问题标题】:How to directly manipulate texels in OpenGL ES?如何在 OpenGL ES 中直接操作纹素?
【发布时间】:2012-07-04 17:45:26
【问题描述】:

我想使用 OpenGL ES 在屏幕上缩放和显示图像。图像将每秒更新约 20 次,因此我们的想法是直接在纹理中进行绘制。虽然缩放应该由显卡完成,但我的应用程序保证像素格式的格式正确。我的应用程序需要逐个像素地操作图像。由于应用程序的架构,我想避免像settexel(x,y,color) 这样的调用,而是直接写入内存。

  • 是否可以直接访问(显卡?)内存中的纹理并按像素进行更改?
  • 如果没有,是否可以使用 settexel(x,y,color) 之类的东西来更改纹理?

感谢您的帮助!

【问题讨论】:

  • 这是在什么平台上的?这将决定实现这一目标的最佳途径是什么。例如,iOS 有一些直接写入纹理内存的功能。
  • 我正在寻找一种通用的方法(尽可能)。我目前使用的硬件是飞思卡尔 iMX53 板 (freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX53_FAMILY)。

标签: opengl-es-2.0 textures pixels hardware-acceleration


【解决方案1】:

好的,在询问了我公司的一些人之后,我发现没有干净的方法可以直接访问图形内存(解决方案 1)或从着色器中访问主内存(解决方案 2)。

因此,我将像素存储在主内存中,并通过glTextSubImage2D将更改的区域移动到图形内存中。

感谢所有帮助我的人!

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多