У меня есть текстура OpenGL, которая создается нормально, используя GL_FLOAT
в качестве типа данных:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, Dims.x, Dims.y, 0, GL_RGBA, GL_FLOAT, Data);
(Data
отправляется как массив float
.)
Затем я должен обновить текстуру, используя данные в виде байтов без знака. Законно ли обновлять текстуру с glTexSubImage2D
, используя GL_UNSIGNED_BYTE
?
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, Dims.x, Dims.y, GL_RGBA, GL_UNSIGNED_BYTE, NewData);
(NewData
отправляется как unsigned char*
.)
В документации ничего не говорится об использовании различных типов данных между этими функциями. Можно ли обновить текстуру таким образом, или данные текстуры должны быть преобразованы в float*
?