OpenGL 点/线
//1.最简单也是最常⽤的 4.0f,表示点的⼤⼩
glPointSize(4.0f);
//2.设置点的⼤⼩范围和点与点之间的间隔
GLfloat sizes[2] = {2.0f,4.0f};
GLfloat step = 1.0f;
//3.获取点⼤⼩范围和最⼩步⻓
glGetFloatv(GL_POINT_SIZE_RANGE ,sizes);
glGetFloatv(GL_POINT_GRAULARITY ,&step);
//4.通过使⽤程序点⼤⼩模式来设置点⼤⼩
glEnable(GL_PROGRAM_POINT_SIZE);
//5.这种模式下允许我们通过编程在顶点着⾊器或⼏何着⾊器中设置点⼤⼩。着⾊器内建变量:
gl_PointSize,并且可以在着⾊器源码直接写
gl_PointSize = 5.0
//6. 设置线段宽度
glLineWidth(2.5f);
OpenGL 三⻆形
对于OpenGL 光栅化最欢迎的是三⻆形.3个顶点就能构成⼀个三⻆形. 三⻆形类型来⾃于顶点.并不是所有的三⻆形都是正三⻆形等.OpenGL 三⻆形环绕⽅式
在绘制第⼀个三⻆形时,线条是按照从V0-V1,再到V2。最后再回到V0的⼀个闭合三⻆形。 这个是沿着顶点顺时针⽅向。这种顺序与⽅向结合来指定顶点的⽅式称为环绕.
注:在默认情况下,OpenGL 认为具有逆时针⽅向环绕的多边形为正⾯. 这就意味着上图左边是正⾯,右边是反⾯。
glFrontFace(GL_CW);
GL_CW:告诉OpenGL 顺时针环绕的多边形为正⾯;
GL_CCW:告诉OpenGL 逆时针环绕的多边形为正⾯
OpenGL 三⻆形带
对于很多表⾯或者形状⽽⾔,我们会需要绘制⼏个相连的三⻆形. 这是我们可以使⽤GL_TRIANGLE_STRIP 图元绘制⼀串相连三⻆形,从⽽节省⼤量的时间。
优点:
- ⽤前3个顶点指定第1个三⻆形之后,对于接下来的每⼀个三⻆形,只需要再指定1个顶点。需要绘制⼤量的三⻆形时,采⽤这种⽅法可以节省⼤量的程序代码和数据存储空间
- 提供运算性能和节省带宽。更少的顶点意味着数据从内存传输到图形卡的速度更快,并且顶点着⾊器需要处理的次数也更少了。
OpenGL 三⻆形扇
对于很多表⾯或者形状⽽⾔,我们会需要绘制⼏个相连的三⻆形. 这是我们可以使⽤GL_TRIANGLE_FAN 图元绘制⼀组围绕⼀个中⼼点相连的三⻆形。
网友评论