美文网首页
OpenGL ES内容(1)

OpenGL ES内容(1)

作者: ZZ_军哥 | 来源:发表于2020-09-30 18:15 被阅读0次

    OpenGL ES的简介

    OpenGL ES 开放式图形库(OpenGL的)⽤用于可视化的⼆二维和三维数据。它是⼀一个多功能开放标准图形库,⽀支持2D和3D数字内 容创建,机械和建筑设计,虚拟原型设计,⻜飞⾏行行模拟,视频游戏等应⽤用程序。您可以使⽤用OpenGL配置3D图形管道并向其提交数 据。顶点被变换和点亮,组合成图元,并光栅化以创建2D图像。OpenGL旨在将函数调⽤用转换为可以发送到底层图形硬件的图形命 令。由于此底层硬件专⽤用于处理理图形命令,因此OpenGL绘图通常⾮非常快。应用于移动端的图形渲染框架,目前分1.0,2.0,3.0版本,1.0是固定管线,2.0和3.0是可编程管线,差别不大,由于我是做iOS开发,下面内容主要是针对iOS开发的,在iOS12.0系统之后,苹果已经不让用OpenGL ES,推出Metal,但是苹果底层很多代码都是用OpenGL ES做的渲染框架,所以就像UIAlertView一样,也是可以使用的,只是会报警告.

    OpengGL ES基本知识:

    1.普通顶点坐标系: 比如创建了一个View,坐标系以中心点为(0,0,0)的点,X值从左到右为(-1,1),Y值从下到上为(-1,1),Z轴垂直于View,越往里越为负数,往外为正数.

    2.纹理坐标:也就是一张图片,坐标系和iOS的坐标系有点不同,View的坐标原点在左上角,而纹理的坐标原点在左下角.

    3.图元类型:OpenGL ES只有3中图元,点,线,三角形,如下图所示,球体也是由三角形组成,三角形越多,图形越圆.

    4.GPU和CPU:CPU擅长线性处理,而GPU擅长多线程处理,就比如CPU是一个零件加工机器,加工速度很快,而GPU就像1000个工人, 一台机器和1000个人,同时加工一个简单零件,人可以同时开工,机器只能一个一个加工,虽然它加工速度很快,而OpenGL ES的代码主要是放在GPU上执行,所以数据,纹理等内容放在GPU上处理速度更快

    参考连接:https://blog.csdn.net/u012964944/article/details/82788620

    OpenGL ES :

    1.顶点数据:比如一个三角型,它有三个顶点,再次重复,图片是四边形,它由两个三角形构成.

    2.纹理顶点:也就是图片的顶点,左下角为(0,0),右上角为(1,1)

    3.顶点和纹理的对应:类似于贴瓷砖,顶点数据和纹理坐标存在对应关系,不能将瓷砖折起来贴,这能旋转似的贴,当然图片有正反,也可以贴成一张倒得图片

    4.shader:着色器,分两种着色器,顶点着色器和片元着色器,顶点着色器负责处理顶点,片元着色器负责处理颜色

    5.Program:类似于管理者,专门管理顶点着色器和片元着色器,就像一个大人带两个小孩.

    6.深度测试:我们只负责开启和清空,完全由ES处理,画立体图像的时候,会在显存中保存每个图片的深度,也就是Z轴数据,不会让本来在前面的图形放在后面,绘制立体图形时,开启.

    7.正背面剔除:比如交叉图形,先画两个三角形,再画另一个三角形时,会造成覆盖,类似于下面的图形,如果用UIView去放三个交叉的图形,就做不到,立体图形最后也是要变成二维图形,开启后,被遮挡的部分OpengGL ES就会不画,从而可以画出这样一个交叉图形

    8.矩阵:大学里的线性代数,OpenGL ES通过矩阵通过点乘和叉乘来记录一个图形的变化状况,投影矩阵,用来记录视角,模型矩阵用来记录(平移,缩放,旋转),顶点坐标与矩阵进行数学运算后,可以得到最终的点位置.

    OpenGL ES流程:

    以下图片中,由OpenGL ES处理的过程,图元装配,光栅化,逐片段操作,帧缓存区,而我们要做的事是提供顶点数据,编写着色器,将数据出入到着色器,呈现图形的内容

    代码流程:由程序员编写

    1.iOS内置框架提供 GLKView/CAEAGLLayer/EAGLContext,用来显示链接OpenGL的数据

    2.提供顶点数据/纹理坐标/图片信息等

    3.将坐标顶点复制到显存中

    4.编写顶点着色器/片元着色器

    5.编译两个着色器并链接到Program中

    6.将顶点,纹理等传入到shader中

    7.将图形呈现到iOS提供的视图上来.

    相关文章

      网友评论

          本文标题:OpenGL ES内容(1)

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