OpenGL开发过程中必备的专业名词解析

  • 状态机

是理论上的一种机器,状态机描述了一个对象在其生命中所经历的各种状态状态机的转变,发生转变的动因、条件及抓岸边中所执行的活动,它具有以下特点:

  • 记忆功能,能记住其当前状态
  • 可以接受输入,根据输入内容和原先状态,修改当前状态,并且可以有对应的输出
  • 当进入特殊状态(停机状态)的时候,就怒再接收收入,停止工作。
  • 上下文(context)`
  • 上下文就是个非常庞大的状态机,保存了OpenGL的各种状态,这是OpenGL指令执行的基础
  • OpenGL函数是面向过程的函数,本质是对上下文这个状态机的某个状态或者对象进行操作,通过对OpenGL指令的封装,是可以将Openg的相关调用封装成为一个面向对象的图形API的
  • 由于OpenGL上下文是一个巨⼤大的状态机,切换上下⽂往往会产⽣生较大的开 销,但是不同的绘制模块,可能需要使⽤完全独立的状态管理理。因此,可以在应用程序中分别创建多个不同的上下文,在不不同线程中使⽤不同的上下文,上下文之间共享纹理、缓冲区等资源。这样⽅方案,会⽐比反复切换 上下文,或者⼤量修改渲染状态,更加合理高效的.
  • 渲染(Rendering)

将图形/图像数据转换成2D空间图像操作叫做渲染

  • 顶点数组

顶点是绘制图形的顶点位置数据,这个数据可以存储在数组中,就是顶点数组。顶点数组是存储在内存中的。
相对于顶点数组,性能更高的做法是提前分配一块显存,将顶点数据预先传入到显存中,这部分的显存被称为顶点缓冲区

  • 管线

在OpenGL下渲染图形,会经过一个一个节点,这样的操作就可以理解为管线。就相当于流水线。管线是按照固定顺序执行的,顺序不可以打破,严格按照顺序
固定管线:系统封装的内置的固定着色器程序,只需要传入参数,就能快速的完成渲染

  • 着色器(shader)

在函数绘制之前,需要指定一个由shader编译成的着色器程序,常见的着色器有

  • 顶点着色器(VertexShader)
    用于计算顶点属性的程序,一般用来处理图形顶点变换(旋转、平移、投影等),逐顶点运 算,并行执行
  • 片元着色器(FragmentShader,片段着色器或者像素着色器不同叫法而已)
    用于处理图形的每个像素点的程序,包括颜色计算和填充,逐像素运算,是并行的
  • 几何着色器
  • 曲面细分着色器
  • GLSL(OpenGL Shading Language)

OpenGL中着色编程的语言,他们是在图形卡的GPU (Graphic Processor Unit图形处理理单元)上执⾏行。程序员可使用这个自定义着色器,⽐如:视图转换、投 影转换等。

  • 光栅化 (Rasterization)
  • 把物体的数学描述和相关的颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色的过程。
  • 主要目的是将几何渲染之后的图元信息转化为一系列的像素,以便后续在屏幕上显示。两个过程,第一部分:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元
  • 纹理 (Texture)

可以理解为图片,在渲染图形时候在其编码填充图片,使场景更为逼真

  • 混合 (Blending)

像素没有被剔除。像素会和帧缓冲区颜色进行混合。可以理解为两个颜色重叠显示出来的混合颜色

  • 变换矩阵(Transformation)

图形想要发生平移、缩放、旋转等变换,就需要使用变换矩阵

  • 投影矩阵

将3D坐标转换为二维屏幕坐标时使用。投影方式有正投影和透视投影。正投影不会改变大小,透视投影会使远处的物体比近处投影的要小。

  • 渲染上屏/交换缓冲区(SwapBuffer)
  • 渲染缓冲区⼀般映射的是系统的资源⽐如窗口。如果将图像直接渲染到窗口对应的渲染缓冲区,则可以将图像显示到屏幕上。
  • 但是,值得注意的是,如果每个窗⼝只有一个缓冲区,那么在绘制过程中屏幕进行了刷新,窗口可能显示不出完整的图像
  • 为了解决这个问题,常规的OpenGL程序至少都会有两个缓冲区。显示在屏幕上的称为屏幕缓冲区,没有 显示的称为离屏缓冲区。在⼀个缓冲区渲染完成之后,通过将屏幕缓冲区和离屏缓冲区交换,实现图像在屏幕上的显示
  • 垂直同步: 由于显示器的刷新⼀般是逐行进行的,因此为了防止交换缓冲区的时候屏幕上下区域的图像分属于两个不同的帧,因此交换一般会等待显示器刷新完成的信号,在显示器两次刷新的间隔中进⾏行交换,这个信号就被称为垂直同步信号,这个技术被称为垂直同步
  • 三缓冲区技术:使⽤了双缓冲区和垂直同步技术之后,由于总是要等待缓冲区交换之后再进⾏下⼀帧的渲染,使得帧率⽆法完全达到硬件允许的最⾼⽔平。为了解决这个问题,引⼊了三缓冲区技术,在等待垂直同步时,来回交替渲染两个离屏的缓冲区,而垂直同步发⽣生时,屏幕缓冲区和最近渲染完成的离屏缓冲区交换,实现充分利⽤硬件性能的⽬的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值