您的位置:首页 > 运维架构

每天一点点—Opengl学习笔记。

2017-09-21 19:56 295 查看
一。使用顶点数组绘制:1.glArrayElement,
2.glDrawElements
3.glDrawArrays

glArrayElemen:每次只能使用一组顶点数据,并且必须在GLbegin和glend之间绘制。

glBegin(GL_LINES);
glArrayElement(0);
glArrayElement(1);
glArrayElement(2);
glArrayElement(3);
glEnd();


glDrawElements每次可以绘制多组顶点数据,顺序可以任意存放,无 glBegin和glend的限制。
voiddrawTwoLineWithArray2()
{
GLfloatdata[]={1.0,0.0,0.0,25.0,25.0,
1.0,0.0,0.0,100.0,100.0,
0.0,1.0,0.0,120.0,120.0,
0.0,1.0,0.0,200.0,200.0};
GLubyteindex[]={0,1,2,3};

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(3,GL_FLOAT,5*sizeof(GLfloat),&data[0]);
glVertexPointer(2,GL_FLOAT,5*sizeof(GLfloat),&data[3]);

glDrawElements(GL_LINES,4,GL_UNSIGNED_BYTE,index);

}


glDrawArrays每次可以绘制多组顶点数据,必须从起点到终点按顺序绘制,无glBegin和glend限制。
glDrawArrays(GL_LINES,0,4);


二。每次启用数组顶点的时候要
glEnableClientState(GL_VERTEX_ARRAY);

混合参数,有颜色和顶点数组。

oiddrawTwoLineWithArray3()
{
GLfloatdata[]={1.0,0.0,0.0,25.0,25.0,0.0,
1.0,0.0,0.0,100.0,100.0,0.0,
0.0,1.0,0.0,120.0,120.0,0.0,
0.0,1.0,0.0,200.0,200.0,0.0};

glInterleavedArrays(GL_C3F_V3F,0,data);
glDrawArrays(GL_LINES,0,4);

}


GL_V2F,表明顶点数据有2个表示顶点坐标的浮点数组成.
GL_V3F,表明顶点数据有3个表示顶点坐标的浮点数组成.
GL_C3F_V3F,表明顶点数据有6个浮点数组成,其中前三个为顶点的颜色数据(Color,C);后三个为顶点的坐标位置数据(Vertex,V)
GL_N3F_V3F,N表明顶点的法线向量Normal.
GL_C4F_N3F_V3F,color,color,color,color,normal,normal,normal,vertex,vertex,vertex,
GL_T2F_V3F,T表示顶点的纹理坐标.
GL_T4F_V4F,GL_T2F_C3F_V3F,GL_T2F_N3F_V3F,GL_T2F_C4F_N3F_V3F,GL_T4F_C4F_N3F_V4F;意义同上.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: