0

我正在使用带有 glut、OpenGL 和 c++ 的 xcode,并且我正在尝试导入和绘制模型。我使用了 obj 到 .h 文件的转换,这是标题的一小部分,因此您可以看到结构。

unsigned int M4GunNumVerts = 37812;
GLfloat M4GunVerts [] = {
// f 1/1/1 1582/2/1 4733/3/1
{0.266494348503772, 0.0252334302709736, -0.000725898139236535},
{0.265592372987502, 0.0157389511523397, -0.000725898139236535},
{0.264890836474847, 0.0182004476109518, -0.00775888079925833},

我试图用这段代码在我的 main 中绘制它。

glVertexPointer(3, GL_FLOAT, 0, M4GunVerts);
glNormalPointer(GL_FLOAT, 0, M4GunNormals);
glTexCoordPointer(2, GL_FLOAT, 0, M4GunTexCoords);
glDrawArrays(GL_TRIANGLES, 0, M4GunNumVerts);

当我跑步时,我看不到模型。我已经设置了一个过剩窗口并制作了一个三角形来查看是否正在绘制形状并且三角形出现了。我不知道如何解决这个问题,所以我可以看到模型。

这是重塑功能

  glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glViewport(0, 0, w, h);

gluPerspective(45, ratio, 0.01, 1000);

glMatrixMode(GL_MODELVIEW);

有人可以帮忙吗?

4

1 回答 1

0

你要么:

  • 未正确启用数组
  • 和/或您的相机视图与您的对象的方向错误
  • 或者你的相机在物体内部。(CULL_FACE启用时)
  • 和或错误或根本没有glColor!(看不到黑底黑字)
  • 和/或忘记绑定纹理(启用时)
  • 和或错误glTexCoord(启用时)
  • 和/或错误设置灯(启用时)
  • 和/或关于物体距离和大小的错误视角(视图angle,znear,zfar
  • 如果物体是平面的,并且您正在看薄的一面...

一些提示:

尝试围绕场景旋转相机(最好使用箭头等键,看看物体是否在后面……或鼠标拖动……)。还可以尝试向前/向后移动相机(也可以使用按键,但我最喜欢的是鼠标滚轮)。

首先使用glBegin() glVertex() glEnd()以避免错误启用阵列的问题,并在没有照明、纹理、CULL_FACEing 的情况下开始(禁用它们!!!)。当您看到您的模型时,然后增量启用所有功能,以便您了解问题所在。毕竟是好的然后尝试数组。

如果您的对象在CULL_FACE启用时看起来是错误的,那么您的缠绕规则是错误的 ( CW/CCW) 可以在旋转对象时看到

这是BDS2006 中的简单 OpenGL 场景应用程序,您可以将其用作窗口和相机/模型矩阵设置的测试

于 2014-01-14T09:14:54.707 回答