OpenGL 术语

在学习 OpenGL 之前,我们先来了解一下涉及到的一些术语名词。

1、渲染

将数学和图形数据转换成 3D 空间图像的操作叫做渲染(Rendering)。当这个术语作为动词使用时,指的是计算机创建三维图像时所经历的过程。它也作为名词使用,指的仅仅是最终的图像作品。

2、变换(Transformation)和投影(Projection)

image

如上图显示的是用线条绘制的一个放置在一个平面上的立方体。

  • 变换:通过 变换(Transformation),或者说旋转这些点,并在他们之间绘制线段,我们就能在平面的 2D 屏幕上创造出一个 3D 世界的错觉。
  • 顶点: 这些点本身叫做 顶点(Vertices,单数为 Vertex),他们能通过一种称为 变换矩阵(Transformation Matrix)的数学结构进行旋转。
    另外还有一种矩阵叫 投影矩阵(Projection Matrix),用于将 3D 坐标转换成二维屏幕坐标,实际的线条也将在二维屏幕坐标上进行绘制。
  • 投影(Projection):用于创建几何图形的3D坐标将投影到一个2D表面(窗口背景)。
  • 正投影(Orthographic Projection)或平行投影:物体在屏幕上的大小和实际大小相同,不管是远还是近。
  • 透视投影(Perspective Projection):远处的物体看上去比近处的物体更小一些,在模拟和3D动画中,这种投影能够获得最大程度的逼真感。

3、顶点、片元、图元和光栅化

过程:顶点—> 图元 —> 片元—> 像素

顶点—> 图元:

几何顶点被组合为图元(点,线段或多边形),然后图元被合成片元,最后片元被转换为帧缓存中的象素数据。

图元 —> 片元:

图元被分几步转换为片元:图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换为窗口坐标。最后,光栅化将裁剪好的图元转换为片元。
1) 裁剪
2) 转换到窗口坐标
3) 光栅化
光栅化是将一个图元转变为一个二维图象(其实只是布满平面,没有真正的替换帧缓存区)的过程。二维图象上每个点都包含了颜色、深度和纹理数据。将该点和相关信息叫做一个 片元(fragment)。(这就是片元和像素之间的关键区别,虽然两者的直观印象都是的像素,但是片元比像素多了许多信息,在光栅化中纹理映射之后图元信息转化为了像素)

片元—> 像素:

1)象素所有权(ownership)检测
2)裁剪检测
3)Alpha检测
4)模版检测
5)深度检测
6)融合
7)抖动
8)逻辑操作

image

着色:沿着顶点之间改变颜⾊色值,能够轻松创建光照照射到一个立方体的效果。着色器(Shader)则是在图形硬件上执行的单独程序,用来处理顶点和执行光栅化任务。

纹理贴图(Texture Mapping):将纹理理图⽚片附着到你绘图的图像上。一个纹理就是一副用来贴到三角形或多边形上的图片。

混合(Blending):颜⾊色混合效果。

4、状态机

状态机 就是一种存在于理论中的机器,它具有以下的特点:

  1. 它有记忆的能力,能够记住自己当前的状态。
  2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。
  3. 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。

理论说起来很抽象,但实际上是很好理解的。
首先,从本质上讲,我们现在的 电脑 就是典型的状态机。可以对照理解:

  1. 电脑的存储器(内存、硬盘等等),可以记住电脑自己当前的状态(当前安装在电脑中的软件、保存在电脑中的数据,其实都是二进制的值,都属于当前的状态)。
  2. 电脑的输入设备接收输入(键盘输入、鼠标输入、文件输入),根据输入的内容和自己的状态(主要指可以运行的程序代码),修改自己的状态(修改内存中的值),并且可以得到输出(将结果显示到屏幕)。
  3. 当它进入某个特殊的状态(关机状态)的时候,它不再接收输入,停止工作。

OpenGL 也可以看成这样的一种机器。让我们先对照理解一下:

  1. OpenGL 可以记录自己的状态(比如:当前所使用的颜色、是否开启了混合功能,等等,这些都是要记录的)
  2. OpenGL 可以接收输入(当我们调用 OpenGL 函数的时候,实际上可以看成 OpenGL 在接收我们的输入),根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出(比如我们调用glColor3f,则 OpenGL 接收到这个输入后会修改自己的“当前颜色”这个状态;我们调用glRectf,则 OpenGL 会输出一个矩形)
  3. OpenGL 可以进入停止状态,不再接收输入。这个可能在我们的程序中表现得不太明显,不过在程序退出前,OpenGL 总会先停止工作的。

简单总结就是:OpenGL 是一个 状态机,它保持自身的状态,除非用户输入一条命令让它改变状态。

作者:凡几多
链接:https://www.jianshu.com/p/ab6e98a0df3b

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342