Я не могу понять, как правильно преобразовать примитивные значения координат в экранные координаты.Если я использую следующий код (где w и h - ширина и высота моего окна 640 X 480)
glViewport(0,0,w,h);
// set up the projection matrix
glMatrixMode(GL_PROJECTION);
// clear any previous transform and set to the identity matrix
glLoadIdentity();
// just use an orthographic projection
glOrtho(0,w,h,0,1,-1);
, а мои примитивы
glBegin(GL_TRIANGLES);
glColor3f(1,0,0);
glVertex3f(-10,-10,0);
glColor3f(0,1,0);
glVertex3f(10,-10,0);
glColor3f(0,0,1);
glVertex3f(0,10,0);
glEnd();
Треугольник становится слишком большим дляподходит к окну.Большинство учебных пособий имеют примитивы в диапазоне [-1,1] и их ортопроекцию между [-1,1], поэтому треугольник правильно расположен в центре.
Итак, если сгенерированы координатысторонним программным обеспечением (или лежит выше диапазона [-1,1], как бы я преобразовал их правильно, чтобы координаты соответствовали экрану?