0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenGL的常用术语解析

电子设计 来源:电子设计 作者:电子设计 2021-01-20 23:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 什么是OpenGL

OpenGL是一个跨语言、跨平台的编程图形程序接口,它将计算机的资源抽象为一个个的OpenGL的对象,对这些资源的操作抽象为一个个OpenGL的指令。它的移植性高,并且速度非常快。

2. OpenGL状态机

状态机是一种抽象的模型,表示一组状态变量的集合。它描述了一个对象在其生命周期内所经历的各种状态,状态之间的转变,发生转变的动因、条件以及转变中所执行的活动。

比如:颜色、纹理坐标、源因子和目标因子、光源的各种参数,这些都是状态,另外还有:是否开启了光照,是否开启了纹理,是否开启了混合,是否开启了深度测试等等。OpenGL会保持这些状态,除非我们调用函数来改变这些状态。

3. OpenGL上下文

OpenGL上下文是一个非常抽象的概念,可以理解为一个包含了所有OpenGL状态的对象。在我们调用任何OpenGL指令前,都需要先创建一个上下文,这个上下文记录了OpenGL渲染所需要的所有信息以及状态,所以上下文也是一个庞大的状态机。

4. 渲染

所谓的渲染,就是将数学和图形数据转换成3D空间图像的操作叫做渲染(Rendering)。

5. 管线

在OpenGL中,3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。

图形渲染管线可以被划分为两个主要部分:
(1)第一部分把你的3D坐标转换为2D坐标。
(2)第二部分是把2D坐标转变为实际的有颜色的像素。

在OpenGL 下渲染图形,就会经历一个一个节点,而这样的操作可以理解为管线。大家可以想象成流水线,每个任务类似流水线般执行。任务之间有先后顺序。 管线是一个抽象的概念,之所以称之为管线是因为显卡在处理数据的时候是按照一个固定的顺序来的,而且严格按照这个顺序,这个顺序就是渲染流程,而管线指的是这个过程。

6. 固定管线/存储着色器

OpenGL自身为开发者封装了很多着色器(shader)程序,开发者只需要调用API即可,不需要关心内部的实现过程,而这些封装好的程序(函数或方法)即为固定管线。

在固定管线下,使用固定存储着色器,固定存储着⾊器由GLTools的C++类GLShaderManager管理,它们能够满⾜进⾏基本渲染的基本要求。

但是由于OpenGL 的使用场景非常丰富,固定管线或存储着色器无法完成每一个业务,这时将相关部分开放成可编程。

7. 着色器程序(Shader)

顾名思义,着色器程序就是一个程序代码,在OpenGL调用绘制函数之前,需要制定一个着色器,在固定管线下,这个着色器已经是封装好的了,在可编程的情况下,则需要程序员自己编写着色器程序。

常见的着色器有:

顶点着色器 (VertexShader)

片元着色器(FragmentShader)/像素着色器 (PixelShader)

几何着色器

曲面细分着色器

在 OpenGL ES 3.0后,可编程依然只支持了顶点着色器和片段着色器这两个最基础的着色器。

7.1 顶点着色器(VertexShader)

顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行,一般用来处理图形每个顶点变换(旋转/平移/投影等)。

顶点着色器是OpenGL中用于计算顶点属性的程序。顶点着色器是逐顶点运算的程序,也就是说每个顶点数据都会执行一次顶点着色器,当然这是并行的,并且顶点着色器运算过程中无法访问其他顶点的数据。

一般来说典型的需要计算的顶点属性主要包括顶点坐标变换、逐顶点光照运算等等。顶点坐标由自身坐标系转换到归一化坐标系的运算,就是在这里发生的。

7.2 片元着色器(FragmentShader)

一般用来处理图形中每个像素点颜色的计算和填充。

片段着色器是OpenGL中用于计算片段(像素)颜色的程序。片段着色器是逐像素运算的程序,也就是说每个像素都会执行一次片段着色器,这个过程也是并行的。

7.3 着色器渲染过程

pIYBAGAIUG-AVD8xAALQLlPM7N4820.png

8. 光栅化(Rasterrization)

又名栅格化或者像素化,其实就是把矢量图转化成像素点的过程。

我们都知道三维物体是由点线面构成的,将这些点线面转化成屏幕上的像素点,这个过程就是光栅化。

该过程包括了两部分工作:

决定窗口坐标中哪些整型栅格区域被基本图元占用;

分配一个颜色值和一个深度值到各个区域。

光栅化过程产生的是片元。

9. 纹理(texture)

在OpenGL中,我们所说的纹理可以理解成是一张图片,在渲染图形的时候,需要将图片贴在其表面,使其看起来更逼真。

10. 混合(Blending)

混合就是将源色和目标颜色通过某种方式混合生成特效的技术,通俗一点就是将两种颜色通过某种算法生成特殊的效果。混合通常用来绘制透明或者半透明的物体。

11. 变换矩阵(Transformation)

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

12. 投影矩阵(Projection)

用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制。

13. 2D笛卡尔坐标系

pIYBAGAIUK6AYY1YAAEtUI4xnME254.png

14. 3D笛卡尔坐标系

o4YBAGAIUO2AbrOGAAG1DuEOHuY481.png

15. 视口

o4YBAGAIUTaAQhXhAAJreUseY6E398.png

pIYBAGAIUXeAReXFAAJA1G4q-wU126.png

16. 投影方式

在OpenGL中,主要有两种投影方式,第一种是正投影或叫平行投影,第二种是透视投影。

在使用正投影的时候,需要准备一个正方形或者长方形的视景体(屏幕)。视景体之外的任何物体都不会被绘制,而是所有实际物体的大小和视景体内的大小都相同,无论远近。

在使用透视投影的时候,远处的物体看上去会比近处的物体小一些,符合近大远小的原理。越靠近视景体,投影越接近物体尺寸,反之,越远,则越小于物体本身的尺寸。

o4YBAGAIUdeAcXDUAApBpBnnchQ221.png

来源:电子创新网

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OpenGL
    +关注

    关注

    1

    文章

    86

    浏览量

    30454
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Labview 解析dxf文件并显示

    上一期开了一个帖子讲Labview导入dxf文件,解析和显示dxf文件,今天继续继续分享常用图元的解析与显示方法。 LINE :用文本方式打开dxf 文件,搜索出直线部分,并摘取,可以得到
    发表于 12-01 11:28

    Labview 解析dxf文件并显示<一>

    /WSfacf1429558a55de185c428100849a0ab7-5f35.htm 下图是我做的一个文件解析,涵盖了常用的一些图元对象,有单线段、多段线、表格、文字、标注、云线、弧、标注、样条曲线
    发表于 11-14 22:45

    通俗易懂的晶振专业术语

    想要了解一个行业,就要对其产品的术语要有所了解,各行各业都要自己专业术语,石英晶振也不例外;了解晶振术语对晶振采购和选型有很大帮助;下面小扬给大家简单的解释晶振术语都代表什么意思:
    的头像 发表于 09-18 11:31 1774次阅读
    通俗易懂的晶振专业<b class='flag-5'>术语</b>

    mqtt dns解析失败是为什么?

    解析域名的ip地址就能正常连上,而直接解析域名就不行,为什么呢
    发表于 09-16 06:38

    浅谈数字芯片的常用术语

    解释: 这是数字芯片设计永恒的“铁三角”。Power指芯片功耗,越低越好;Performance通常指芯片能跑多快(频率),越高越好;Area指芯片的面积,越小成本越低。
    的头像 发表于 08-19 16:36 1122次阅读

    解析基带和射频的工作原理

    在现代通信技术中,基带和射频是两个核心概念,它们共同构成了无线通信的基础。尽管这两个术语频繁出现在技术文档和行业讨论中,但其具体功能和技术细节却常常被误解。本文将以移动通信为例,深入解析基带和射频的工作原理及其在通信链路中的作用。
    的头像 发表于 08-06 09:28 2136次阅读
    <b class='flag-5'>解析</b>基带和射频的工作原理

    IEC 62353中常用术语和定义

    本文详细解读IEC 62353标准中的关键术语,包括被测设备(DUT/EUT)、应用部分(B/BF/CF型)、泄漏电流、微电击与宏电击等定义,帮助理解医疗电气设备安全测试要求。
    的头像 发表于 07-29 17:27 546次阅读

    技术干货 | 从偏移误差到电源抑制比,DAC核心术语解析

    偏移误差、增益误差、INL/DNL、转换时间……这些关键指标如何定义?如何影响DAC性能?本文DAC核心术语解析带您一文掌握关键参数!
    的头像 发表于 06-19 10:38 427次阅读
    技术干货 | 从偏移误差到电源抑制比,DAC核心<b class='flag-5'>术语</b>全<b class='flag-5'>解析</b>

    从偏移误差到电源抑制比,DAC核心术语解析

    本文介绍了DAC术语,包括偏移误差、满刻度误差、增益误差、积分非线性误差、差分非线性误差、未调整总误差等,并对转换延迟、转换时间、差分非线性误差、端点和最佳拟合线增益误差、单调性、乘法型DAC、电源抑制比等进行了详细说明。
    的头像 发表于 06-17 11:31 545次阅读
    从偏移误差到电源抑制比,DAC核心<b class='flag-5'>术语</b>全<b class='flag-5'>解析</b>

    NS-ZJB型变压器中性点间隙接地保护成套装置的常用电子元器件及功能解析

    NS-ZJB型变压器中性点间隙接地保护成套装置的常用电子元器件及功能解析
    的头像 发表于 06-16 15:10 803次阅读

    技术干货 | 功能安全术语的暗黑森林

    在汽车产业高度发展的当下,功能安全已从抽象概念转化为系统性防控要求。ISO26262定义的核心术语正是突破概念模糊性的首道门槛——既是工程师协同的技术语言,也是实现安全出行的底层方法论。今天我们就来
    的头像 发表于 06-10 16:38 1849次阅读
    技术干货 | 功能安全<b class='flag-5'>术语</b>的暗黑森林

    AI推理经济学的关键术语

    解析 AI 在生产环境中的部署成本,助力用户实现性能优化和盈利能力。
    的头像 发表于 05-07 09:09 878次阅读

    示波器的性能术语(上)

    现要求的信号完整性的能力。学习新技能通常要学习新的术语表,在学习怎样使用示波器时也不例外。本节介绍了部分实用的测量和示波器性能术语。这些术语用来描述为应用选择正确
    的头像 发表于 03-03 11:52 807次阅读
    示波器的性能<b class='flag-5'>术语</b>(上)

    端子与插头的区别解析

    端子与插头是电气连接领域中常见的术语,它们在电路连接、电子设备和电力系统中扮演着重要的角色。虽然在日常使用中,人们可能会将这两个术语混为一谈,但实际上它们有着明显的区别。 端子与插头的区别解析 1.
    的头像 发表于 12-29 10:38 2030次阅读

    UVLED光固化机常用术语和单位简介,一篇文章带你全面了解!

    全面、简洁的文章,带你了解UVLED光固化机的常用术语和单位!‌一、光通量(Φ)‌光通量是指发光体每秒发射的光的总量,单位为流明(Lm)。在UVLED行业中,光通
    的头像 发表于 12-24 13:27 1484次阅读
    UVLED光固化机<b class='flag-5'>常用</b><b class='flag-5'>术语</b>和单位简介,一篇文章带你全面了解!