资料介绍
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 着色器渲染过程
8. 光栅化(Rasterrization)
又名栅格化或者像素化,其实就是把矢量图转化成像素点的过程。
我们都知道三维物体是由点线面构成的,将这些点线面转化成屏幕上的像素点,这个过程就是光栅化。
该过程包括了两部分工作:
- 决定窗口坐标中哪些整型栅格区域被基本图元占用;
- 分配一个颜色值和一个深度值到各个区域。
光栅化过程产生的是片元。
9. 纹理(texture)
在OpenGL中,我们所说的纹理可以理解成是一张图片,在渲染图形的时候,需要将图片贴在其表面,使其看起来更逼真。
10. 混合(Blending)
混合就是将源色和目标颜色通过某种方式混合生成特效的技术,通俗一点就是将两种颜色通过某种算法生成特殊的效果。混合通常用来绘制透明或者半透明的物体。
11. 变换矩阵(Transformation)
如果图形想发生平移、缩放、旋转变换,就需要使用变换矩阵。
12. 投影矩阵(Projection)
用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制。
13. 2D笛卡尔坐标系
14. 3D笛卡尔坐标系
15. 视口
16. 投影方式
在OpenGL中,主要有两种投影方式,第一种是正投影或叫平行投影,第二种是透视投影。
在使用正投影的时候,需要准备一个正方形或者长方形的视景体(屏幕)。视景体之外的任何物体都不会被绘制,而是所有实际物体的大小和视景体内的大小都相同,无论远近。
在使用透视投影的时候,远处的物体看上去会比近处的物体小一些,符合近大远小的原理。越靠近视景体,投影越接近物体尺寸,反之,越远,则越小于物体本身的尺寸。
来源:电子创新网
- 分享:单片机常用术语
- 汽车常用ISO15765协议解析 33次下载
- 电子技术专业术语常用名词及英文缩写 18次下载
- 混合信号系统的一些常用术语和接地资料下载
- 13个示波器常用术语解析资料下载
- 天线知识中的术语及概念解析资料下载
- 示波器的入门常用术语解析
- 科普:示波器常用的术语解释
- OPENGL的简介和编程指南资料免费下载 18次下载
- Qt OpenGL中文使用教程免费下载 38次下载
- OpenGL教程之《OpenGL超级宝典》中文第七版资料免费下载 0次下载
- 基于OpenCV+OpenGL 双目立体视觉三维重建 5次下载
- GPS设备术语解析 6次下载
- Mentor术语大全 0次下载
- 通信专业常用英语术语详解 0次下载
- 网络安全术语大全解读 2800次阅读
- 模/数转换器和数/模转换的技术术语 2850次阅读
- ARM调试常用术语解析 1922次阅读
- ARM架构常用术语解析 2411次阅读
- Android OpenGL ES开发:投影和相机视图创建和应用 1241次阅读
- 如何把OpenGL中3D坐标转换成2D坐标 8461次阅读
- OpenGL中的深度、深度缓存、深度测试 3612次阅读
- OpenGL绘制图形单元的技巧介绍 2665次阅读
- 初学OpenGL:什么是绘制上下文 2396次阅读
- 简单解析OpenGL ES为缓存提供数据的7个步骤 5508次阅读
- opengl主要功能介绍 7659次阅读
- 压力传感器都用哪些术语来表示? 3835次阅读
- DAC和ADC的56个常用技术术语解析 9980次阅读
- 带你深度温习数字I/O和逻辑分析仪常用术语 1314次阅读
- 连接器常见术语解析(中英互译) 4803次阅读
下载排行
本周
- 1电子威廉希尔官方网站 原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能威廉希尔官方网站 详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大威廉希尔官方网站 图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成威廉希尔官方网站 应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口威廉希尔官方网站 图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6威廉希尔官方网站 仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多