美文网首页
五、OpenGL渲染基础

五、OpenGL渲染基础

作者: 东篱采桑人 | 来源:发表于2020-07-09 16:57 被阅读0次

1. 图元装配

在OpenGL渲染中,图形都是由图元组成,顶点数据经由顶点着色器计算处理后,再经过图元装配(Primitive Assembly),绘制出图形。图元装配过程,其实是根据顶点信息获取构成这个图形所需的图元。

图元 描述
GL_POINTS 每个顶点在屏幕上都是单独点
GL_LINES 每⼀对顶点定义⼀个线段
GL_LINE_STRIP ⼀个从第⼀个顶点依次经过每⼀个后续顶点⽽绘制的线条
GL_LINE_LOOP 和GL_LINE_STRIP相同,但是最后⼀个顶点和第⼀个顶点连接起来
GL_TRIANGLES 每3个顶点定义⼀个新的三⻆角形
GL_TRIANGLE_STRIP 共⽤⼀个条带(strip)上的顶点的⼀组三角形
GL_TRIANGLE_FAN 以⼀个圆点为中⼼呈扇形排列,共⽤相邻顶点的⼀组三⻆角形

OpenGL的基本图元包括:点(Point)、线(Line)、三角形(Triangle)、四边形(Quadrangle)、多边形(Ploygon)。图元本质上是将顶点按照一定方式连接构成的,表现效果如下:

可以看到,同一个图形可以分割成不同的图元,图元不同,需要传入的顶点数量也不同。传入的顶点数据越少,顶点着色器需要处理的次数也越少。所以为了更高效地绘制图形,需要选定合适的图元。

2. 环绕⽅式

图元矢量图需要通过光栅化转换成栅格数据,才能用于片元着色器来对像素点进行着色。 对于OpenGL来说,光栅化最欢迎的是三⻆形图元。

在绘制右边的三⻆形时,线条是按照从V0-V1,再到V2,最后再回到V0,这个是沿着顶点顺时针⽅向。这种通过⽅向来指定顶点顺序的⽅式称为环绕。OpenGL默认逆时针⽅向环绕的多边形为正⾯,这就意味着上图左边是正⾯,右边是反⾯。

OpenGL提供了修改正反面绘制的方法,但一般不建议修改:

glFrontFace(GL_CW); 
GL_CW:告诉OpenGL顺时针环绕的多边形为正⾯;
GL_CCW:告诉OpenGL逆时针环绕的多边形为正⾯;

3. 点、线的属性设置

  • 直接设置点的大小
glPointSize(4.0f);
  • 通过使⽤程序点⼤⼩模式来设置点⼤⼩
glEnable(GL_PROGRAM_POINT_SIZE);
gl_PointSize = 5.0;

这种模式下允许我们通过编程在顶点着⾊器或⼏何着⾊器中设置点的大小。
gl_PointSize:着⾊器内建变量

  • 设置点的⼤⼩范围和点与点之间的间隔
GLfloat sizes[2] = {2.0f, 4.0f}; 
GLfloat step = 1.0f;
  • 获取点⼤⼩范围和最⼩步⻓
glGetFloatv(GL_POINT_SIZE_RANGE, sizes); 
glGetFloatv(GL_POINT_GRAULARITY, &step);
  • 设置线段宽度
glLineWidth(2.5f);

相关文章

  • OpenGL学习笔记二

    OpenGL 基础渲染 一、OpenGL 渲染结构 有3种向OpenGL 着⾊器传递渲染数据的⽅法可供我们选择1....

  • 五、OpenGL渲染基础

    1. 图元装配 在OpenGL渲染中,图形都是由图元组成,顶点数据经由顶点着色器计算处理后,再经过图元装配(Pri...

  • 基础渲染

    opengl opengl渲染管线基础架构 3.1 基础图形管线 3.1.1 客户机-服务器 就opengl而言,...

  • 离屏渲染与OpenGL渲染结构

    大纲 理解离屏渲染 OpenGL渲染结构 着色器 OpenGL 基础图元/基本图元连接 理解离屏渲染 正常渲染流程...

  • OpenGl ES 3.0基础(kotlin)

    OpenGL ES 3.0 基础 OpenGL ES 对于Android来说是渲染在GLSurfaceView上 ...

  • OpenGL基础渲染

    第三章 基础渲染 本章内容 OpenGL渲染基础架构 如何使用7种OpenGL几何图元 如何使用存储着色器 如何使...

  • OpenGL基础渲染

    第三章 基础渲染 本章内容 OpenGL渲染基础架构 如何使用7种OpenGL几何图元 如何使用存储着色器 如何使...

  • OpenGL渲染流程图解, 固定存储着色器理解以及图元的基础理解

    OpenGL渲染管线简化流程图 以下图片转自OpenGL基础渲染 1. 客户端-服务器 这里的对于OpenGL而言...

  • OpenGL_002_OpenGL基础渲染

    OpenGL基础渲染 一、OpenGL 与 着色器 在OpenGL 3.0之前,OpenGL包含一个固定功能的管线...

  • OpenGL 基础渲染

    1、OpenGL的渲染架构 OpenGL渲染管线简化流程图 1、 客户端-服务器 管线上半部分是客户端,下半部分是...

网友评论

      本文标题:五、OpenGL渲染基础

      本文链接:https://www.haomeiwen.com/subject/dgejcktx.html