Я ходил и смотрел на другой код OpenGL 3+, чтобы познакомиться поближе. Я также следую учебным пособиям и пытаюсь кодировать с помощью OpenGL.
поэтому я нашел код, который рисует сферу. некоторые вершины находятся ниже, и вот результат:
.
..
...
Sphere vertices are: >> Vertice 10281: X>0.000747, Y>-0.000275, Z>1.000000!
Sphere vertices are: >> Vertice 10282: X>0.000769, Y>-0.000208, Z>1.000000!
Sphere vertices are: >> Vertice 10283: X>0.084840, Y>-0.023011, Z>0.996129!
Sphere vertices are: >> Vertice 10284: X>0.084840, Y>-0.023011, Z>0.996129!
Sphere vertices are: >> Vertice 10285: X>0.000769, Y>-0.000208, Z>1.000000!
Sphere vertices are: >> Vertice 10286: X>0.000784, Y>-0.000141, Z>1.000000!
Sphere vertices are: >> Vertice 10287: X>0.086522, Y>-0.015533, Z>0.996129!
Sphere vertices are: >> Vertice 10288: X>0.086522, Y>-0.015533, Z>0.996129!
Sphere vertices are: >> Vertice 10289: X>0.000784, Y>-0.000141, Z>1.000000!
Sphere vertices are: >> Vertice 10290: X>0.000793, Y>-0.000072, Z>1.000000!
Sphere vertices are: >> Vertice 10291: X>0.087546, Y>-0.007936, Z>0.996129!
...
..
.
Теперь код, который я скачал, рисует сферу в середине экрана. Использует пакет glm. Чего я не понимаю, так это того, как «X = 0.087546» или «Z = 0.996129» переводятся в пиксели и рисуются на оси экрана.
Вот код glm:
//PROJECTION
glm::mat4 Projection = glm::perspective(45.0f, 1.0f, 0.1f, 100.0f);
angle = (GLfloat) (i/50 % 360); //to dia gia nan pio argo
//printf("Angle: >>>> %f, \n", angle);
//VIEW
glm::mat4 View = glm::mat4(1.);
View = glm::translate(View, glm::vec3(0.f, 0.f, -5.0f)); // x, y, z position ?
//View = glm::rotate(View, angle * -1.0f, glm::vec3(1.f, 0.f, 0.f));
View = glm::rotate(View, angle * 0.5f, glm::vec3(0.f, 1.f, 0.f));
//View = glm::rotate(View, angle * 0.5f, glm::vec3(0.f, 0.f, 1.f));
//MODEL
glm::mat4 Model = glm::mat4(1.0);
glm::mat4 MVP = Projection * View * Model;
glUniformMatrix4fv(glGetUniformLocation(shaderprogram, "mvpmatrix"), 1, GL_FALSE, glm::value_ptr(MVP));
Окно, в котором оно создается, является окном 600 * 600 пикселей. Так как X и Z отображаются на эти координаты?