OpenGL 常用函数

2019-05-23  本文已影响0人  JingYa_Lu

2.1.4 坐标系统工具箱

窗口大小变化时,在glutReshapeFunc()中注册的汉莎会被调用,在回调函数中,完成下列任务:

2.1.5 点,线,多边形

void glRect {sifd}(TYPE x1,TYPE y1,TYPE x1,TYPE y1);绘制由(x1,y1),(x2,y2)构成矩形,并且与x轴和y轴平行。

glVertex3d(GLdouble x, <#GLdouble y#>, <#GLdouble z#>) 表示一个顶点坐标

如下代码绘制一个多边形

void RenderScene(void)

{
    glBegin(GL_POLYGON);
    glVertex2f(0.0, 0.0);
    glVertex2f(0.0, .5);
    glVertex2f(.3, .7);
    glVertex2f(.45, .5);
    glVertex2f(.6, 0.3);
    glEnd();
     glutSwapBuffers();
  }
Snip20190524_1.png

在opengl中只有点线和三角形,一些复杂的图形都是由他们堆砌而成。

将输入图元的数学描述转化为与屏幕位置对应的像素片元的过程称为光栅化。
渲染(render):计算机从模型创建最终图像的过程。
OpenGL 另一个最本质的概念叫做着色器,它是图形硬件设备所执行的一类特殊函数。 理解着色器最好的方法是把它看做专为图形处理单元(通常也叫做 GPU)编译的一种小型程序。
在 OpenGL 中,会用到四种不同的着色阶段(shader stage)。其中最常用的包括 的顶点着色器(vertex shader)以及片元着色器,前 者用于处理顶点数据,后者用于处理光栅化后的片元数据。
像素(pixel)是显示器上最小的可见单元。计 算机系统将所有的像素保存到帧缓存(framebuffer) 当中,后者是由图形硬件设备管理的一块独立内存 区域,可以直接映射到最终的显示设备上。
OpenGL语法
OpenGL 库 中 所 有 的 函 数 都 会 以 字 符“ gl ” 作 为 前 缀,然后是一个或者多个大写字母开头的词组,以此来命名一个完整的函数。OpenGL 库中定义的常量也是 GL_COLOR_BUFFER_BIT 的形 式,如 display() 函数中所示。所有的常量都以 GL_ 作为前缀,并且使用下划线来分隔单词。为了能够方便地在不同的操作系统之间移植 OpenGL 程序,OpenGL 还为函数定义了 不同的数据类型,例如 GLfloat 是浮点数类型。
OpenGL 渲染管线

Snip20190529_4.png
着色器是专门为gpu编译的小型应用程序,而渲染管线指的是数据处理过程,可以看做一个流水线,首先接受顶点数据,然后由顶点着色器处理,生成图元,再经过细分着色器,几何着色器,进行图元设置,裁剪,光栅化处理(输入的数据转换成屏幕位置对应的像素点)生成片元数据,送给片元着色器处理。
上一篇 下一篇

猜你喜欢

热点阅读