Эффективная отрисовка объектов по пикселям в OpenGL
У меня игра, в ней данные текстур хранятся как массив байтов (такое хранение текстур поможет сделать более удобные динамические текстуры, что мне потом понадобится). В момент отрисовки программа проходит по текстурам всех объектов и ставит пиксели на экране. Вот тут и начинается...
- Сначала я использовал SFML, но она была слишком медленной. К тому же, я использовал класс Image для хранения данных экрана (чтобы потом их отрисовать), и, кажется, постоянная перезапись этих данных не очень хорошо сказалась как на производительности, так и на сроке жизни ОЗУ...
- Потом, пришла идея рисовать с помощью OpenGL, используя GL.DrawElements в режиме Points. Было еще несколько подобных идей, по типу, "использовать VBO для каждого пикселя и постоянно обновлять в них данные" или "использовать один VBO для экрана в целом". Я думаю, те, кто разбираются в OpenGL, поймут, почему я от них отказался (я к таким людям не отношусь, но именно они переубедили меня).
- Советовали использовать GLVertexPointer и GlColor, но у меня слишком новая версия OpenGL, и ладно на компьютере я могу перейти на старую, а вот в OpenGL ES этих функций нет и, вроде бы, не было.
В общем, я зажат двумя проблемами: хранить данные для отрисовки в ОЗУ, но тогда она сильно изнашивается, или хранить их в видеопамяти, но тогда их придется часто обновлять данными из ОЗУ, что делать нежелательно. И даже зная проблемы, я толком не знаю способов их решения. Поэтому, общим вопросом остаётся "Как эффективно рисовать пиксели в OpenGL?"