О формате изображения OpenGL , что делает драйвер GL при переносе пикселей на графический процессор

#opengl #format #textures

Вопрос:

Когда я, например, пытаюсь передать пиксели с glTextureSubImage1D помощью , я указываю internalformat — GL_R3_G3_B2, формат-GL_RGB , тип-GL_UNSIGNED_BYTE_3_3_2, как выглядит конечное состояние одного пикселя в памяти GPU? (3bit-f, 3bit-f, 2bit-f) или (32bit-f, 32bit-f, 32bit-f)?

Комментарии:

1. Что такое 3bit-f ? 3-битный поплавок? Этого не существует.

2. Я не уверен, гарантирует ли OpenGL даже точное расположение памяти на графическом процессоре. Насколько вам известно, при доступе к нему он должен вести себя как 8-разрядные данные с макетом r3g3b2. Я бы предположил, что большинство драйверов также будут хранить его таким образом в памяти GPU.

3. В полном opengl, а не в gles, точность всегда самая высокая, верно? итак, когда я пробую текстуру с форматом пикселей GL_R3_G3_B2, как выглядит процесс выборки, он каждый раз динамически преобразует 3-битный компонент в 32-битный компонент с плавающей точкой? Или пиксель был преобразован в 32-разрядный компонент с плавающей точкой при переносе в память графического процессора?