我正在使用assimp从文件中加载一些场景/对象,并且我让它们早些时候正确显示 - 但是重写了我的MVP矩阵设置(这已经被写得很糟糕,并且是难以理解的)。顶点缓冲区对象不会渲染,其他图元会
现在,我在标准渲染管道中绘制的大多数原始图像看起来都很好。我在原点周围有一个线框立方体,也可以放置一个三角形。但是不管我做什么,我的ASSIMP加载的对象拒绝渲染,作为线框或实体。
我怀疑我犯的错误非常明显。 I've tried to reduce the code to a minimal example.
该物体应该看起来像一块岩石,它应该显示在线框框内。
由于我没有太多的改变网格代码,我猜这个问题在scene.h
或main.cpp
。
旧版本有GLSL程序,但我在此删除了所有提及的内容。我从OpenGL Superbible的理解是,着色器不是必需的,但。所以那不可能吧?
即使我不准备使用它们,'glVertexPointer()'仍然可以用来存储法线吗?或者我需要使用着色器来处理数据? –
不,'glVertexPointer()'用于顶点位置,而不是法线。 ['glNormalPointer()'](http://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml)用于正常。如果您不启用'GL_NORMAL_ARRAY' [客户端状态](http://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml),OpenGL将不会尝试读取任何法线。 – genpfault