Как отобразить координаты объекта на экране в OpenGL? - PullRequest
0 голосов
/ 21 февраля 2019

Я не могу понять, как правильно преобразовать примитивные значения координат в экранные координаты.Если я использую следующий код (где 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], как бы я преобразовал их правильно, чтобы координаты соответствовали экрану?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...