Я изменил tutorial04. cpp немного из http://www.opengl-tutorial.org/beginners-tutorials/tutorial-4-a-colored-cube/
Я сделал форму пирамиды, и я хотел поместить камеру над пирамидой и посмотреть вниз на нем, но я обнаружил, что когда камера находится прямо над пирамидой, она вообще не отображает. Если я изменю свое значение X на любое другое значение, кроме 0, оно будет отображаться нормально.
Если я установил для X значение -0.0000001f или 0.0000001f, он также будет отображаться нормально .
Приведенный ниже код не работает.
glm::mat4 View = glm::lookAt(
glm::vec3(0,10,0), // Camera
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
);
Этот код работает нормально
glm::mat4 View = glm::lookAt(
glm::vec3(1,10,0), // Camera
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
);
У меня есть 5 точек, которые я использую для рисования 6 треугольников.
a: 0,1,0
b: 1,0, -1
c: 1,0,1
d: -1 , 0,1
e: -1,0, -1
Треугольник 1: a, b, c
Треугольник 2: a, c, d
Треугольник 3: a, e, b
Треугольник 4: a, e, b
Треугольник 5: b, d, c
Треугольник 6: d, b, e
static const GLfloat g_vertex_buffer_data[] = {
0,1,0,
1,0,-1,
1,0,1,//a,b,c
0,1,0,
1,0,1,
-1,0,1,//a,c,d
0,1,0,
-1,0,1,
-1,0,-1,//a,d,e
0,1,0,
-1,0,-1,
1,0,-1,//a,e,b
1,0,-1,
-1,0,1,
1,0,1,//b,d,c
-1,0,1,
1,0,-1,
-1,0,-1//4,2,5
};