Как работает glTexImage2D?

есть glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); где data - unsigned char*.

Я знаю что эта функция загружает наже изображение в память GPU. Знаю, что 3 аргумент - это то, как данные должны быть предсавлены в GPU, а 7 и 8 то как они представленны в передаваемом нами массиве.

Я не могу понять следующие вещи:

  1. Правильно ли я понимаю, что так как мы указали в качестве 7 аргумента GL_RGB, то все наши данные в массиве будут переведены из диапозона от 0 до 255 в диапозон от 0 до 1?

  2. В документации написано, что в качестве седьмого параметра можно передать например такой аргумент: GL_RGB_INTEGER. Что это значит? Зачем нам здесь указывать тип если мы его указываем в восьмом параметре?

  3. В документации написано, что в качестве 3 аргумента можно передать огромное количество различных параметров. Меня интересует различие например между GL_RGB и GL_RGB8. Я могу предположить, что GL_RGB8 означает, что на каждый цвет у нас будет уделён 1 байт, но, что тогда означает GL_RGB?


Ответы (0 шт):