OpenGL 入门第一课-入门知识

2019-12-13  本文已影响0人  tp夕阳武士

OpenGL 起源

“OpenGL起源于Silicon Graphics公司和它的IRIS GL” ,GL(Graphics Library) ->图形库的意思.在OpenGL文档中,我们还能经常看到"the GL" 的术语("the Graphics Library").初见成型的OpenGL 第一个版本是1992年发行被被标记为OpenGL 1.0.

四大图形API简介

OpenGL

全称:Open Graphics Library,是一个跨编程语言、跨平台的编程图形程序接口,将计算机的资源抽象称为一个个OpenGL对象,对这些资源的操作抽象为一个个的OpenGL指令。

OpenGL ES

全称:OpenGL for Embedded Systems,是OpenGL三维图形API的子集,针对手机、PDA、游戏主机等嵌入式设备而设计开发的一套程序接口,去除了OpenGL中许多不必要和性能较低的API接口。

DirectX

DirectX是由很多API组成的图形API,并不是一个单纯的图形API,只属于Windows上一个多媒体处理API,不是跨平台框架,按照性质分类,分为显示、声音、输入和网络四大部分,对于iOS开发者,只需要了解有这么一个框架即可。

Metal

Metal是Apple为游戏开发者推出的新的平台技术框架,该技术能够为3D图像提高10倍的渲染性能,Metal技术的出现,就是Apple为了解决3D渲染而推出的框架,对于iOS开发者来说,这项框架技术的学习很有必要,而且非常重要。

OpenGL 能解决什么问题

OpenGL是用来渲染图形的,能够高性能地将图片显示到屏幕上去.它解决问题的本质是利用设备的GPU来高效地渲染图形图像.

  1. 在游戏开发中,对于游戏场景/游戏人物的渲染
  2. 在音视频开发中,视频解码后的数据渲染
  3. 地图引擎中,对地图上的数据渲染
  4. 动画中实现动画的绘制
  5. 视频的滤镜

OpenGL的一些关键性的专业术语

.图元(Primitives)
像素(pixels)

(注:通过对上面两个东西的理解,我们可以把图元和像素分别抽象成:细胞,和原子,一个人由不同的细胞组成,二细胞由不可再拆分的原子组成)

光栅化(Rasterization)
管线(pipelines)
固定管线/存储着色器
着色器(shader)
顶点数组[VertexArray] & 顶点缓冲区[VertexBuffer]
顶点着色器(Vertexshader)
片元着色器(Fragmentshader)
纹理
混合
变换矩阵(Transformation)
投影矩阵(Projection)
OpenGL上下文[context]
.OpenGL 状态机

1.记忆功能,记住当前的状态;
2.可以根据输入的内容,更改自身当前的状态内容,并且再输出;
当我们调用OpenGL的函数时,实际可以看成OpenGL框架在接受我们的输入,例如我们调用glColor3f,OpenGL接收到这个输入,就会修改自己的"当前颜色"这个状态值;
3.当进入特殊状态(例如停机),便不再接受输入,停止工作;
在退出程序的时候OpenGL会先停止工作;

渲染[Rendering]
交换缓冲区(SwapBuffer)
OpenGL Shading Language(着色器语言)

OpenGL Shading Language,简写:GLSL,是用来在OpenGL中着色编程的语言,他们是在图形卡的GPU上(Graphics Processor Unit)执行的,代替了固定管线的一部分,使得渲染管线中,不同层次具有可编程性,比如:视图转换,投影转换等.
GSLS的着色器代码分为两个部分:Vertex Shader (顶点着色器) Fragment Shader(片段着色器)

上一篇下一篇

猜你喜欢

热点阅读