美文网首页
坐标系统

坐标系统

作者: 龙遁流 | 来源:发表于2017-01-07 10:40 被阅读0次

 标准化设备坐标(Normalized Device Coordinate, NDC):x, y, z介于[-1.0, 1.0]

局部空间(Local Space,物体空间Object Space)

世界空间(World Space)

观察空间(View Space,视觉空间Eye Space)

裁剪空间(Clip Space)

屏幕空间(Screen Space)

坐标转换流

模型矩阵是一种转换矩阵,它能通过对对象进行平移、缩放、旋转来将它置于它本应该在的位置或方向。世界坐标原点(0, 0, 0),变换时将本地坐标系在世界坐标系变换。

观察空间,可形象的视为OpenGL的摄像机,通过观察矩阵(平移和旋转的组合)将对象的世界坐标转换为观察者视野前的坐标。

投影矩阵创建的观察区域为视锥体(Frustum),视锥体范围内的坐标会最终出现在用户的屏幕上,此过程称为投影(Projection),之后经过透视划分(Perspective Division)操作将四维裁剪空间坐标转换为三维标准化设备坐标。

正射投影:Orthographic Projection。

正射投影

以上视锥体近似为立方体,定义了由宽,高,近平面,远平面决定的可视坐标系。任何出现在近平面前面或远平面后面的坐标都会被裁剪掉。

透视投影:Perspective Projection

透视投影

FOV(Field of View):视野,表示观察的空间的大小。FOV越大,相同位置的物体的在投影屏幕上越小。

正射投影和透视投影区别

正射投影的每个顶点和观察者的距离是一样的。

顶点坐标到裁剪坐标:

从右往左依次计算

OpenGL是右手坐标系,但在标准化设备坐标系中是左手坐标系(DirectX也是)。

右手坐标系

Z缓冲区:OpenGL存储所有深度信息于Z缓冲区(Z-Buffer)中,即深度缓冲区(Depth Buffer)。深度存储在每个片段里面(作为片段的z值)。当片段像输出它的颜色时,OpenGL会将它的深度值和z缓冲进行比较然后如果当前的片段在其它片段之后它将会被丢弃,然后重写。这个过程称为深度测试(Depth Testing)并且它是由OpenGL自动完成的。


图片和一些文字来源于https://learnopengl-cn.github.io,本人收集作为笔记,如有侵权,望告知


相关文章

  • 地图投影以及Proj4的使用

    地理坐标系统和投影坐标系统 地理坐标系统(Geographic coordinate system) :地理坐标系...

  • 构造旧坐标系统到新坐标系统的坐标变换矩阵

    已知和,新坐标系统的原点位置定义在旧坐标系统的处,新的y轴为,请构造完整的从旧坐标系统到新坐标系统的坐标变换矩阵。...

  • 法兰克加工中心坐标系统,你一定要搞明白!

    编程坐标系采用右手坐标系统。在加工期间,由于机床对工件做反向运动,坐标系统通常被改变。 坐标系统 1. 机床坐标系...

  • LearnOpenGL 坐标系统(1)

    五个坐标系统 局部空间(物体空间) 世界空间 观察空间 裁剪空间 屏幕空间 五个坐标系统的概念 : 坐标系统[ht...

  • View编程指南(二)

    接上篇 View编程指南(一) 三、View的坐标系统 1. 坐标系统基础 UIKit默认的坐标系统是从左上角开始...

  • 坐标系统

    最近在学习OpenGL,把学习的一些过程写在这里,希望与大家共同分享讨论。欢迎光临我的个人网站Orient.ren...

  • 坐标系统

    标准化设备坐标(Normalized Device Coordinate, NDC):x, y, z介于[-1.0...

  • 坐标系统

    1.基本概念 坐标系统是地理空间数据组织管理、显示、分析和应用的基础,是对现实世界的一种空间抽象,是描述地理空间点...

  • 坐标系统

    1、OpenGL幕后使用glViewport中定义的位置和宽高进行2D坐标的转换,将OpenGL中的位置坐标转换为...

  • 坐标系统

    2D笛卡尔坐标系 笛卡尔坐标由一个x坐标和一个y坐标构成。x坐标测量水平方向的位置,y坐标测量垂直方向的位置ima...

网友评论

      本文标题:坐标系统

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