OpenGL不显示从STL文件加载的多个顶点

OpenGL不显示从STL文件加载的多个顶点,opengl,Opengl,我尝试从STL文件中绘制3D模型。我已经成功地从CAD文件加载了三角形网格,加载的数据是正确的,因为我加载了ASCII文件。它是加载数据的样本 n 0.954709 -0.160052 -0.250827 v1 4826.07 16113.6 2710.49 v2 4826.26 16113.5 2711.21 v3 4824.94 16108.2 2709.71 n 0.87753 -0.142971 -0.457712 v1 4825.89

我尝试从STL文件中绘制3D模型。我已经成功地从CAD文件加载了三角形网格,加载的数据是正确的,因为我加载了ASCII文件。它是加载数据的样本

n 0.954709   -0.160052   -0.250827 
v1 4826.07   16113.6   2710.49 
v2 4826.26   16113.5   2711.21 
v3 4824.94   16108.2   2709.71 
n 0.87753   -0.142971   -0.457712 
v1 4825.89   16113.6   2709.76 
v2 4826.07   16113.6   2710.49 
v3 4824.94   16108.2   2709.71 
然后我在painGL函数中使用下面的代码来绘制

   glViewport(0, 0, width(), height());
   glClear(GL_COLOR_BUFFER_BIT);
   glColor3f(1,1,0);
   glBegin(GL_TRIANGLES);
   for(int i=0;i<triangles.size;i++)
       {
       glNormal3f((GLfloat)triangles.normals[i].x,(GLfloat)triangles.normals[i].y,(GLfloat)triangles.normals[i].z);
       glVertex3f((GLfloat)triangles.vertices[0][i].x,(GLfloat)triangles.vertices[0][i].y,(GLfloat)triangles.vertices[0][i].z);
       glVertex3f((GLfloat)triangles.vertices[1][i].x,(GLfloat)triangles.vertices[1][i].y,(GLfloat)triangles.vertices[1][i].z);
       glVertex3f((GLfloat)triangles.vertices[2][i].x,(GLfloat)triangles.vertices[2][i].y,(GLfloat)triangles.vertices[2][i].z);
   }
   glEnd();
但是小部件没有画任何东西。我试着画另一个三角形

glColor3f(1,1,0);
glScalef(1, 1, 0.0);
glBegin(GL_TRIANGLES);
glVertex3f(0,-0.5,0);
glVertex3f(0.5,-0.5,0);
glVertex3f(0.0,0.5,0);
glEnd();
它画得很正确。我想我对OpenGL中的坐标或单位比例有问题,因为加载的顶点值非常大。
有什么办法解决我的问题吗

由于顶点值太大,可能是在视图外渲染?您可以尝试通过使用gluLookAt缩小来更改视点。或者我想,通过除以max~16000来规范化顶点值也会使模型更小。只是不要缩放法线。你是指三角形[i]吗?顶点[0]。。。而不是三角形。顶点[0][i]。。。在您的第一个代码片段中?@Pavelbely:我向后推三角形中的法线和顶点,而不是向后推三角形变量,这样代码就不会出错。@Mewa:谢谢,我会尝试查看。
glColor3f(1,1,0);
glScalef(1, 1, 0.0);
glBegin(GL_TRIANGLES);
glVertex3f(0,-0.5,0);
glVertex3f(0.5,-0.5,0);
glVertex3f(0.0,0.5,0);
glEnd();