OpenglES笔记一

        学习OpenglES大概一个月的时间了,现在回头复习下,顺便写点东西整理下知识。刚开始学的时候一头雾水,磕磕绊绊将就学下来,学OpenglES最重要的就是对概念和流程的理解了,要是直接拿代码去学,根本啥都看不懂。对于第二遍的学习,记录下自己的理解,方便大家交流和自己理解。

简介

        简介这不多写了,百度好多,简单的来说Opengl是一种跨平台的编程语言。可以对图形硬件设备访问的软件库,显卡基本都支持Opengl,可能有些版本的不同。OpenglES是针对移动设备,手机游戏机等。OpenglES可以用于绘制3D图形,提高渲染效率,图像的处理。

CPU和GPU

        OpenglES主要通过GPU绘制图形,下面是CPU和GPU的架构图,绿色的为运算单元,黄色为控制单元,红色是缓存。

        CPU和GPU它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

        GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分

opengl的渲染流程

        这里不具体写OpenglES如何编写,先介绍大体的流程和用处,OpenglES目前分为三个版本,OpenglES1.0(固定管线),2.0(可编程管线),3.0(在2.0的基础上扩展),这里我用的是2.0。

        图形渲染的基本单位就是点,两个点之间用点渲染成线,三个点之间渲染成面,一个面就是由一个或多个三角形组成,3D物体就是由许许多多的三角形拼接而成。渲染完图形的框架后,可以在每个点上添加颜色,或者加上图片对应点的颜色,看起来就是一个完整的物体了。在绘制时,简单的图形我们可以自己定义,复杂的需要用工具导出数据,这些数据包括顶点信息、纹理信息、法线信息,这里的法线是用来做光照效果的,就算漫反射也是由无数个镜面反射组成的,法线就是用来计算反射角,这样的计算是由系统来做的。

        关于3D,我们的手机是一个平面,所看的3D效果是由数据经过一系列的矩阵变换,投影到平面上展示的。移动、平移、缩放,矩阵的变换是不可缺少的。

        图像顶点数据到显示结果有几个大体的过程

顶点数据:buffer是放置数据的地方,老外起的名字

顶点着色器:顶点数据传递给着色器,着色器通过glsl对顶点进行编辑

顶点变换:顶点数据有时需要矩阵变换

图元装配:顶点信息根据画图的需要,将一些点连接起来

光栅化:连接顶点的线段上用点拼接起来,三角形填充也用点

片元着色器:将所有的点通过片元着色器填充颜色或纹理图片

运用到的一些知识

        学了一个月感觉大体的流程还是比较清楚地,像大多数的程序语言一样,语法不是重点,想要绘制好看的东西,还是要靠自己的思考和勤加练习。

        glsl(Opengl shading language )着色器语言,在工程里单独建立的一个文件,通过程序加载到opengl的执行程序里,分顶点着色器和片元着色器,可以操作片元的位置和颜色,大多数情况下都要依靠这两个文件,通过变量传递给着色器,在里面编写位置的变化,矩阵相称,纹理取值等。

坐标系,物体坐标系:起初的坐标系和世界坐标系是重叠的,物体移动后坐标系原点也会跟着移动。

                惯性坐标系:物体坐标系原点起,坐标轴平行于世界坐标系。

                世界坐标系:在空间中建立起的坐标系,默认原点在屏幕的正中央,x轴向右,y向上,z向屏幕外。

                观察者坐标系:原点起,x轴和y轴和世界坐标系一致,z轴相反(向屏幕里面)。FOV是视角的大小,NEAR PLANE是近平面,FAR PLANE是远平面,物体只有在两个平面之间的椎体内,才能被看见。

向量和矩阵,在opengl中向量都是列向量(向量的书写都是从上往下),所以我们会看到在着色器中会用矩阵乘以向量,如果反过来向量乘以矩阵,是没有意义的。在文章中我们看到的向量横着写,是为了方便书写。矩阵也是特殊的向量,如果我们把一个矩阵的每一行看成一个向量

1,0,0        x轴

0,1,0        y轴

0,0,1        z轴 

那么这个矩阵三个向量组成的也就是(1,1,1),矩阵和向量的相乘其实也可以看成在每个轴缩放的倍数(这只是矩阵为对角线的),如果需要旋转,会用到cos和sin,具体的计算我不写了,脑补下围绕某个轴旋转后,每个向量的取值和角度的关系,不太难。

再说一个四维向量,我们绘制的是3D物体,只有三个轴,opengl中的四维向量很多,我们上面讲到,三阶矩阵和向量相乘,只能旋转缩放,如果移动嗯,这是时候就需要再加一个w(x,y,z,w),向量的w默认为1,这样矩阵就可以把移动的距离放在第四个w中,来举个例子,x轴移动1,y轴移动2,z轴移动3,那么矩阵就是

1,0,0,1 

0,1,0,2

0,0,1,3

0,0,0,1


向量的叉乘,同时垂直两个向量的向量,即c垂直于a,同时c垂直于b(a与c的夹角为90°,b与c的夹角为90°)

c =  a×b = (a.y*b.z-b.y*a.z , b.x*a.z-a.x*b.z  , a.x*b.y-b.x*a.y)

向量点乘,是一个向量和它在另一个向量上的投影的长度的乘积;是标量。

a * b = |a| * |b| * cosθ             |a|为向量长度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容