视觉学习
一 基本概念
1:图形API(Application Programming Interface)
是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。全称是图形应用程序接口。
2:OpenGL下的坐标系
1)世界坐标系 (网上找的解释)
"世界坐标系" 在学术文献中的解释
1、世界坐标系定义为:带有小圆的圆心为原点ow,xw轴水平向右,yw轴向下,zw由右手法则确定.,v′n为实时图中对应的统计特征向量
2、是系统的绝对坐标系也称为世界坐标系.在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的
3、设一个基准坐标系Xw—Yw—Zw称为世界坐标系,(xw,yw,zw)为空间点P在世界坐标系下的坐标.(u,v)为P点在图像直角坐标系下的坐标
4、这个坐标系称为世界坐标系.计算机对数量化
2)物体坐标系( 没太懂)
3)摄像机坐标系
个人理解就是以摄像机的角度看物体
4)惯性坐标系 (网上找的)
牛顿运动定律在其中有效的参考系,又称惯性坐标系,简称惯性系。
https://zhidao.baidu.com/question/558084557.html?fr=iks&word=%CE%EF%CC%E5%D7%F8%B1%EA%CF%B5&ie=gbk
3:快速了解OpenGL下专业名词理解图片从文件渲染屏幕的过程
1)OpenGL与OpenGL ES 的区别
OpenGL针对PC端。是Sun公司开发的一套三维图形应用程序接口库,软件开发者借助OpenGL可以实现复杂的三维图形变换。
OpenGL ES (OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机PAD和游戏主机等嵌入式设备而设计。
2)DirectX windows 多媒体处理框架
3)metal 2014年推出。苹果内核逐渐使用的三维图形框架
4:图形API目的是解决什么问题?
1)音视频开发中,对于视频解码后的数据渲染
2)地图数据渲染
3)动画绘制
4)加滤镜效果
5)游戏人物场景的渲染
解决问题的本质是操作GPU芯片。
二 专业术语名词解释
1:顶点数组:
存储顶点数据(顶点坐标,法向量,纹理坐标和颜色信息)在一系列数组中
参考:https://blog.csdn.net/u012501459/article/details/12945153
2:顶点缓冲区:
顶点缓存是一个CPU可见的和GPU可见的缓冲区,它包含了描述您想要呈现的对象(s)的几何图形的顶点数据。一般来说,顶点数据由位置(x、y、z)数据和可选的颜色、法线或其他信息组成。和其他3D api一样,这里的方法是用这个顶点数据填充缓冲区,并在绘制操作期间将其传递给GPU。
参考:https://blog.csdn.net/hccloud/article/details/82497491
3:管线:
一个一个节点。顺序不能够被打破。Pipeline,显卡执行的、从几何体到最终渲染图像的、数据传输处理计算的过程
参考:https://www.cnblogs.com/xingyunge/p/6770682.html
4:固定管线/存储着色器:
Shader 整体式封闭的,中间的各道工艺按固定的流程顺序走
5:顶点着色器:
接收顶点数据,单独处理每个顶点。有几个顶点调用几次。
6:片元着色器:
片元颜色以及深度值,然后传递到片元测试和混合模块。片元着色器处理物体材质、灯光等信息,决定了每个片元的颜色,同时也是在GPU中运行。最终通过gl_FragColor输出。
7:光栅化 Rasterization:
输⼊图元的数学描述,转化为 与屏幕对应的位置像素⽚片元,简称(光栅化)
8:纹理:
相当于图片
9:坐标系:
1)笛卡尔坐标系(直角坐标系)
2)右手坐标系
3)左坐标系
OpenGL 在物体/世界/照相机空间右手坐标系。规范化左手坐标系。
参考:https://www.cnblogs.com/mythou/p/3327046.html
三 相关概念问题
1:CPU与GPU之间的通信
CPU把数据从内存中复制到显存中;CPU把指令发送到GPU上;GPU从显存里读取、写入数据并进行计算;GPU把结果从显存发送回CPU。在物理连接上,前端总线连接CPU和内存;显存总线连接GPU和显存;AGP或者PCIe总线连接内存和显存。
参考:http://book.51cto.com/art/201205/338043.htm
2: 颜色混合方程式
Cf = (Cs * S) + (Cd*D)
其中,Cf是最终计算产生的颜色,Cs是源颜色,Cd则是目标颜色,S和D分别是源和目标混合因子。这写混合因子是用下面函数进行设置。S和D都是枚举值,而不是可以直接指定的实际值。 下图列出了混合函数可以使用的值。其中下标表示源、目标和颜色。R、G、B和A分别代表红、绿、蓝和alpha
参照:https://blog.csdn.net/webzhuce/article/details/78995162
3:渲染上屏/交换缓冲区
GPU屏幕渲染有以下两种方式:
On-Screen Rendering
意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。
Off-Screen Rendering
意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。
参照://www.greatytc.com/p/6d24a4c29e18
4:CPU什么时候解码图片?
在即将加载之前。
5:图片解压原理--位图
参考:http://blog.leichunfeng.com/blog/2017/02/20/talking-about-the-decompression-of-the-image-in-ios/