所有变换的完整流程

        有一定OpenGL ES开发经验的朋友都知道,最终传入渲染管线的是由摄像机矩阵(视图矩阵),投影矩阵,基本变换总矩阵相乘得到的总变换矩阵。在顶点着色器中,着色器将接收到的原始顶点位置与传入的总变换矩阵相乘(OpenGL ES中采用的是列向量,矩阵在左,向量在右进行相乘),得到顶点最终的绘制位置,基本代码如下:

gl_position = uMVPMatrix * vec4(aPosition,1);

        有些朋友或许有个疑问:“传入的原始顶点位置aPosition中已经包含x,y,z这3个坐标分量了,为啥与总变换矩阵相乘时还需要加上一个分量1,变成四维坐标向量呢?”这个技术在图形学中被称为齐次坐标表示,所谓的齐次坐标表示就是用N+1维坐标表示N维坐标。齐次坐标还分为规范化和非规范化的,规范化的齐次坐标在x,y,z分量后增加的那个分量的值必须为1,这也就是上述代码中增加的分量1了。这个增加的分量一般称为w分量。后面所谓的执行透视除法实际上很简单,就是将齐次坐标[x,y,z,w]规范化,即将四个分量分别除以w,结果为[x/w,y/w,z/w,1]。

        对于简单的开发需求而言,了解这些是最基本的。但需要进行更灵活深入的开发,还需对上述三类矩阵进行更深层次的了解。很有必要需要了解几种不同的空间,如下详细介绍。

1、物体空间:

        需要绘制的3D物体所在的原始坐标系代表的空间。比如,在进行设计时,物体的几何中心是摆放到坐标系原点的,这个坐标系代表的就是物体空间。

2、世界空间:

        物体在最终3D场景中的摆放位置对应的坐标所属的坐标系代表的空间。比如,要在[1,2,3]位置摆放一个立方体,在[10,20,30]位置摆放一个球体,这里面[1,2,3]和[10,20,30]两组坐标所属的坐标系代表的就是世界空间。

3、摄像机空间(视图空间):

        物体经摄像机观察后,进入摄像机空间。摄像机空间指的是以观察场景的摄像机为原点的一个特定坐标系代表的空间。在这个坐标系中,摄像机位于原点,视线沿z轴负方向,y轴方向与摄像机Up向量方向一致。需要注意的是,在摄像机空间中,摄像机永远位于原点,视线一直沿z轴负方向,y轴一直沿摄像机Up向量方向。但是相对于世界坐标系,摄像机坐标系可能是歪的或斜的。也就是说,摄像机空间代表的是以摄像机本身为中心的一种坐标系,就像人眼观察世界时若将头歪过来看,感觉是物体斜了,其实物体在世界坐标系中是正的,只是经过眼睛观察后进入了眼睛(摄像机)坐标系,在这个坐标系里是歪的而已。

4、剪裁空间

        只有在视景体里面的物体才能最终被用户观察到。也就是说并不是摄像机空间中的所有物体都能最终被观察到,只有在摄像机空间中位于视景体内的物体才能最终被观察到。因此,将摄像机空间内视景体内的部分独立出来经过处理后就成了剪裁空间。

5、标准设备空间

        对剪裁空间执行透视除法后得到的就是标准设备空间了,对于OpenGL ES而言,标准设备空间3个轴的坐标范围都是-1.0到1.0。

6、实际窗口空间

        一般代表的是设备屏幕上的一块矩形区域,其坐标以像素为单位。即视口对应空间。

        通过上述的介绍,朋友们应该对各种空间有了更加深入的了解,那么所有变化的完整流程是什么,我们可以用一张图来形象说明:


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

推荐阅读更多精彩内容

  • 转载自VR设计云课堂[https://www.jianshu.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 1,010评论 0 0
  • 前言 在前两章,总结有顶点坐标,纹理坐标。实际上在这之上还有更多的坐标。作者经过学习后,在本文总结一番。 上一篇:...
    yjy239阅读 1,989评论 1 1
  • 1、概述 前面几篇关于OpenGLES的文章: OpenGL ES 2.0 显示图形(上) OpenGL ES 2...
    高丕基阅读 4,531评论 3 5
  • 去看《爱乐之城》,有各种原因,因为片子评分高、因为看着不烧脑、因为出差、因为恰好想看一场电影…… 电...
    Cindy_lina阅读 262评论 0 0
  • 七绝‖ 七夕情怀 文/唐 风 王母金钗两岸开, 牛郎织女痛徘徊。 每年七七欢心日, 鹊架银河赴会来。 平水韵...
    唐风丿阅读 779评论 4 25