glDrawElements仅绘制四边形 [英] glDrawElements only draws half a quad

查看:271
本文介绍了glDrawElements仅绘制四边形的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的功能:

void Object::draw2()
{

if(!mIsInitialised) { return; }

//Tell OpenGL about our vertex and normal data
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &Vertices.front());

glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, &Temp2.front());

//draw the .txt-file
glDrawElements(GL_TRIANGLES, Indices.size(), GL_UNSIGNED_INT, &Indices.front());

//restore the state GL back
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}

我的索引向量包含:1 2 3 1 3 4

My indices-vector contains: 1 2 3 1 3 4

我的顶点矢量包含:-1 -1 0 1 -1 0 1 1 0 -1 1 0

My vertices-vector contains: -1 -1 0 1 -1 0 1 1 0 -1 1 0

当我运行该程序时,它仅绘制四边形-即一个三角形.

When I run the program, it only draws half a quad - I.e a triangle.

结果-> http://i.stack.imgur.com/jZALG.png

推荐答案

您的索引向量应包含:

0 1 2 0 2 3

否则,您将永远不会碰到顶点编号0并以四边形的一半结束.

Otherwise, you never touch the vertex number 0 and end up with the half of the quad.

这篇关于glDrawElements仅绘制四边形的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆