Про литературу нечего не подскажу, но на вопросы отвечу:
1- в webgl есть функция gl.readPixels, которая позволяет считать определенную область буфера кадра( чтение из текстуры) в определенный буфер. Если знать ширину и высоту области считывания, можно легко превратить одномерный массив в 2-х мерный.
2- диапазон значений в float point текстуре [- бесконечность, + бесконечность] с точностью в 32 бита на все 4 канала( 8 бит на канал- 256 цветов)
3- массив( буфер цветов) под полным контролем программиста
4- смотри 1- для чтения. gl.texImage2D может принимать в качестве последнего параметра буфер цветов( типизированный массив), которые необходимо записать в текстуру
5- хз