Как напрямую манипулировать текселями в OpenGL ES?

Я хочу использовать OpenGL ES для масштабирования и отображения изображения на экране. Изображение будет обновляться примерно 20 раз в секунду, поэтому идея заключалась в том, чтобы рисовать прямо в текстуре. Хотя масштабирование должно выполняться графической картой, формат пикселей гарантированно будет правильным для моего приложения. Моему приложению необходимо манипулировать изображением попиксельно. Из-за архитектуры приложения я хотел бы избежать таких вызовов, как settexel(x,y,color), а писать прямо в память.

  • Можно ли получить прямой доступ к текстуре в памяти (графической карты?) и изменить ее попиксельно?
  • Если нет, можно ли использовать что-то вроде settexel(x,y,color) для изменения текстуры?

Спасибо за любую помощь!


person Sebastian Vogel    schedule 30.06.2012    source источник
comment
Это на какой платформе? Это определит, какой лучший путь к достижению этого. Например, в iOS есть некоторые возможности для прямой записи в память текстур.   -  person Brad Larson    schedule 01.07.2012
comment
Я ищу общий подход (насколько это возможно). В настоящее время я работаю с платой Freescale iMX53 (freescale). .com/webapp/sps/site/taxonomy.jsp?code=IMX53_FAMILY).   -  person Sebastian Vogel    schedule 02.07.2012


Ответы (1)


Хорошо, после опроса некоторых парней в моей компании я узнал, что нет прямого доступа к графической памяти (решение 1) или доступа к основной памяти из шейдера (решение 2).

Таким образом, я буду хранить пиксели в основной памяти и перемещать измененные регионы через glTextSubImage2D в графическую память.

Спасибо всем, кто помог мне в этом!

person Sebastian Vogel    schedule 04.07.2012