Мне нужно извлечь маленький прямоугольник (200x200) из большой текстуры (2048x2048) и поместить пиксели RGBA в память. Там, кажется, два способа сделать это:glReadPixels vs. glGetTexImage
а) использовать glGetTexImage и передать в буфер, который получает всю текстуру, и прочитать соответствующие пиксели из этого
б) создать видеобуфер, втянуть в него с помощью текстуру с только необходимой частью и извлечь пиксели, созданные с помощью glReadPixels.
Я предполагаю, что б) быстрее, но я относительный новичок, я хотел бы знать, иду ли я в правильном направлении. а) проще закодировать, поэтому я задаюсь вопросом, является ли возможное попадание в скорость незначительным.
Стив
Увы, для a) Я имел в виду glGetTexImage, а не glTexImage2d. – stevenkucera
@stevenkucera: Тогда, пожалуйста, отредактируйте свой вопрос. –
OK Я закодировал решение b), и это колоссально в 50 раз быстрее (100 микросекунд по сравнению с 5 миллисекундами). Оглядываясь назад, 20/20. – stevenkucera