Можно ли получить доступ к текстурной памяти OpenGL ES 2.0 непосредственно на встроенной платформе? - PullRequest
1 голос
/ 20 октября 2010

Я работаю над некоторым кодом GP-GPU на платформе OMAP 3530, и я зашла в тупик из-за отсутствия функции glGetTexImage в openGL ES 2.0.Поскольку платформа использует встроенную память для графического процессора, мне было интересно, есть ли какой-нибудь хак, который я могу сделать, чтобы получить указатель непосредственно на выделенную текстуру в памяти.Таким образом, я мог прочитать свои данные обратно без необходимости проталкивать их через кадровый буфер, который выбрасывает много данных.

1 Ответ

2 голосов
/ 02 мая 2011

Насколько я знаю, нет способа сделать то, что вы описываете. Ближайшим и наиболее эффективным способом сделать это будет рендеринг в FBO, таким образом можно связать текстуру в качестве цветового буфера и использовать glReadPixels для возврата пикселей. Это все еще требует чтения Framebuffers из-за API glReadPixels. Хотя есть несколько преимуществ использования FBO перед другими методами:

  1. вы можете создавать и использовать несколько FBO в одном и том же EGLContext (нет необходимости в переключении контекста, если вы, например, используете PBuffer)
  2. вы можете разделить буферы цвета (и глубины / трафарета) между FBO
  3. вы можете прикрепить текстуры непосредственно к FBO без необходимости выполнять операцию копирования
...