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

一。使用顶点数组绘制:1.glArrayElement,

2.glDrawElements

3.glDrawArrays


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

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

glDrawElements 每次 可以 绘制 多组 顶点数据,顺序 可以 任意 存放,无  glBegin 和 glend 的限制。

 
void drawTwoLineWithArray2()
{
    GLfloat data[]=  {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};
    GLubyte index[]= {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);
混合参数,有颜色和顶点数组。
oid drawTwoLineWithArray3()
{
    GLfloat data[]=  {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;意义同上.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值