Поскольку 0 - это 0% (абсолютный левый / нижний угол), а 1 - 100% (абсолютный правый / верхний), вам просто нужно найти точку между ними, которая будет соответствовать пикселям.
Например. Скажем, ваш мяч размером 20х20 пикселей. Это означает, что он имеет 5% высоты экрана и 3,33% ширины экрана. Поэтому квадрат, окружающий ваш шар, будет иметь следующие вершины:
void drawBall()
{
glVertex2f(ball.x - (20/600)/2, ball.y - (20/400)/2);
glVertex2f(ball.x - (20/600)/2, ball.y + (20/400)/2);
glVertex2f(ball.x + (20/600)/2, ball.y + (20/400)/2);
glVertex2f(ball.x + (20/600)/2, ball.y - (20/400)/2);
}
Посмотрите, как я делю ширину шара на ширину экрана, чтобы получить значение с плавающей запятой, которое работает с glVertex2f? Кроме того, ball.x и ball.y должны иметь значение с плавающей точкой от 0 до 1.
Я делю эти числа на 2, потому что я предполагаю, что (ball.x, ball.y) является координатой центра шара, поэтому половина сложения идет по обе стороны от центра.