#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-разрядный компонент с плавающей точкой при переносе в память графического процессора?