OpenGL初识

作者: 夏天的枫_ | 来源:发表于2020-07-03 00:29 被阅读0次

常用名词解释

OpenGL上下文(context)

  • 在应用程序调用任何OpenGL指令之前,需先创建一个OpenGL的上下文contex。这个context是一个巨大的状态机,实现了对OpenGL的各个状态的记录,这也是OpenGL的指令执行基础;

OpenGL状态机

  • 状态机是描述了一个对象在其生命周期所经历的各种状态、状态间的转变、发生转变的动因、条件以及转变过程中执行的活动。
  • OpenGL可以记录自己的状态(如当前使用的颜色、是否混合了功能等);可以接收输入;可以进入停止状态并且不再接收输入,在退出程序前,OpenGL总会先停止工作。

渲染(Rendering)

  • 即将图片/按钮/视频等,解压显示绘制到屏幕的过程。

顶点数组(VertextArray)

  • 在调用绘制方法描绘OpenGL ES图元(点、线、三角形)时,直接由内存传入的顶点数据,即在提前就将数据存入到内存当中的。

顶点缓存区(VertexBuffer)

  • 将顶点数据提前分配到显存,这个显存即为顶点缓冲区。

管线

  • 在OpenGL下渲染图形过程中的一个一个节点,则可理解为管线。像流水线一般,每个任务流水线按先后顺序般执行任务。

固定管线/存储着色器

  • 其存在早起的OpenGL版本中,封装了许多固定的着色程序块,且内置了包含光照、坐标转换、剪裁等诸多功能的固定Shader程序,以帮助开发者完成图形的渲染。

顶点着色器VertexShader

  • 一般用来处理图形每个顶点变换——旋转、平移、投影等;它是OpenGL用于计算顶点属性的程序,它会按照顶点数据都会执行一次顶点着色器,这是一个并行过程,并且在顶点着色器运算过程中无法访问其他顶点的数据。
  • 需要计算的顶点属性:顶点坐标转换、逐顶点光照运算等。顶点坐标由自身坐标系转换到归一化坐标系的运算。

片元着色器程序(FregmentShader)

  • 一般用来处理图形中每个像素点颜色计算和填充,它是逐像素运算的程序,即每个像素都会执行一次片段着色器,且是并行执行。

GLSL(OpenGL Shading Language)

  • OpenGL的着色语言是用来在OpenGL中着色编程的语言,也是开发人员编写的短小自定义程序。它们是在GPU(Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线一部分,使得渲染管线中的不同层次具有可编程性。如:试图转换、投影转换等。GLSL的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片元着色器)。

光栅化(Rasterizaion)

  • 是把顶点数据转换为片元的过程,其作用是将图转化为一个个栅格组成的图形,特点是每个元素对应帧缓冲区的一个像素。
  • 它是将几何图元变为二维图像的过程;分为两步:1.决定窗口坐标中那些整型栅格区域被基本图元占用;2.分配一个颜色值和一个深度值到各个区域。光栅化过程中产生的是片元。
  • 把物体的数学描述以及与物体相关颜色信息转换为屏幕上用于对应位置的像素及用户填充像素的颜色,这个过程称为光栅化,这也是一个将模拟信号转化为离散信号的过程。

纹理

  • 纹理可理解为图片。在渲染图形时需在编码处填充图片,为了使得场景更加逼真,这里使用的图片即为纹理;但在OpenGL中,习惯叫纹理而不是图片。

着色器渲染流程

着色器渲染流程.png

相关文章

  • 02总结--014--OpenGL ES 初识

    OpenGL ES 初识 OpenGL ES 简介 OpenGL ES (OpenGL for Embedded ...

  • OpenGL(1)入门基础

    初识OpenGL

  • OpenGL-ES初探

    初识 OpenGL ES OpenGL ES是OpenGL的子集 OpenGL ES 是针对嵌入式设备及移动终端设...

  • OpenGL初识

    OpenGL初识 图形API简介 OpenGL(Open Graphics Library):一个跨编程语言、跨平...

  • 基础知识

    OpenGL初识[https://www.jianshu.com/p/207f0a8e492f] OpenGL初探...

  • 初识OpenGL

    简书注册了好久,读了很多文章,自己也想要写一些小心得小体会。奈何人懒事多,一直没有动笔。现在就趁自己系统学习Ope...

  • openGL初识

    openGL / openGL ES openGL (open Graphics Library 开放式图形库)。...

  • 初识OpenGL

    什么是OpenGL OpenGL是一套可以对计算机图形硬件设备(GPU)进行访问的API。主要用于渲染2D/3D矢...

  • OpenGL初识

    初始OpenGL OpenGL (Open Graphics Library) 是一个跨平台编程语言、跨平台的编程...

  • 初识OpenGL

    一. 一些基本概念1.啥叫OpenGLOpenGL (Open Graphics Library)是⼀个跨编程语⾔...

网友评论

    本文标题:OpenGL初识

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