если они в пикселях, не являются ли они целыми числами?
Они не в пиксельных единицах. Данные вершины преобразуются в конечные координаты пространства окна (= пиксель) по всему конвейеру. Эти входные координаты, которые вы указываете, находятся в объектном пространстве , и это система координат, которую вы определяете по своему усмотрению.
Вы должны действительно ознакомиться с преобразованиями координат .
Кроме того, вы должны знать, что в OpenGL вы не рисуете пикселей . Вы рисуете графические примитивы - точки, линии, треугольники - которые определяются определенным количеством вершин в каждой.
Что означает использование чисел с плавающей запятой, когда пиксели являются целочисленными единицами?
Даже в пространстве окна полезны координаты с плавающей точкой. Пиксели не являются дискретными точками, но представляют некоторую область. OpenGL (и другие API рендеринга) определяют пиксель в пространстве окна как квадрат с длиной стороны 1 единица. Вершины могут упасть в любую (субпиксельную) позицию внутри такого квадрата пикселей, и будут применены правила растеризации, чтобы сгенерировать соответствующие фрагменты размером с пиксель для примитивов, которые вы визуализируете.