Прежде чем OpenGL ES сможет видеть вашу текстуру, вы должны загрузить ее в память уже, сгенерированные имена текстур (glGenTextures) и связать ее (glBindTexture). Данные текстуры - это просто большой массив в памяти.
Поэтому, если вы хотите изменить один тексель, вы можете манипулировать им в памяти, а затем снова привязать его. Этот подход обычно выполняется для генерации процедурной текстуры. В сети есть много доступных ресурсов, например: http://www.blumtnwerx.com/blog/2009/06/opengl-es-texture-mapping-for-iphone-oolong-powervr/
В то время как glReadPixels доступно, очень мало ситуаций, когда вам нужно будет использовать его для интерактивных приложений (на экран приходит на ум). Это абсолютно разрушает производительность. И все равно не вернет исходные текстуры, но вместо этого вернет блок фреймбуфера.
Я понятия не имею, какой эффект вы ищете. Однако, если вы настроите таргетинг на устройство, поддерживающее пиксельные шейдеры, возможно, пользовательский пиксельный шейдер может делать то, что вам нужно.
Конечно, я работаю в предположении, что вы не имели в виду пиксель, как в экранных координатах.