从c ++头文件中绘制模型

时间:2013-10-20 19:46:47

标签: c++ xcode opengl 3d 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},

我试图用这段代码在我的主要部分中绘制这个。

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);

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

要么你:

  • 无法正确启用数组
  • 和/或您的相机视图方向错误
  • 和/或您的相机在对象内。 (启用CULL_FACE时)
  • 和/或错误或根本没有glColor! (看不到黑色的黑色)
  • 或者忘记绑定纹理(启用时)
  • 或错误glTexCoord(启用时)
  • 和/或错误地设置灯光(启用时)
  • 和/或对象距离和大小的错误观点(查看angle,znear,zfar
  • 如果物体是平面的,你正看着薄薄的一面......

一些提示:

尝试在场景周围旋转相机(理想情况下使用某些键,如箭头,看看物体是否在后面......或鼠标拖动......)。还要尝试向前/向后移动相机(也可以使用按键,但我最喜欢的是鼠标滚轮)。

首先使用glBegin() glVertex() glEnd()以避免错误启用数组的问题,并在没有光照,纹理,CULL_FACE的情况下启动(让它们禁用!!!)。当你看到你的模型然后逐步启用所有,所以你看到了什么是错的。毕竟还可以尝试数组。

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

这里是simple OpenGL scene app in BDS2006你可以用它来测试你的窗口和相机/模型矩阵设置