1. 5个不同的坐标系统

  • 局部空间(Local Space,或者称为物体空间(Object Space))
  • 世界空间(World Space)
  • 观察空间(View Space,或者称为视觉空间(Eye Space))
  • 裁剪空间(Clip Space)
  • 屏幕空间(Screen Space)

1.1 5种坐标

  • 局部坐标(Local Coordinate)

顶点坐标起始于局部空间(Local Space),局部坐标对象相对于局部原点的坐标,也是物体起始的坐标。

  • 世界坐标(World Coordinate)

处于一个更大的空间范围。这些坐标相对于世界的全局原点,它们会和其它物体一起相对于世界的原点进行摆放。

  • 观察坐标(View Coordinate)

又称摄像机(Camera)、摄像机空间(Camera Space)、视觉空间(Eye Space)

观察矩阵(View Matrix),用来将世界坐标变换到观察空间,一系列的位移和旋转的组合来完成,平移/旋转场景从而使得特定的对象被变换到摄像机的前方

  • 裁剪坐标(Clip Coordinate)
  • 屏幕坐标(Screen Coordinate)

2. 步骤

step1. local->world

模型矩阵(Model)

step2. 世界坐标变换为观察空间坐标,使得每个坐标都是从摄像机或者说观察者的角度进行观察的。

观察矩阵(View)

step3. 投影到裁剪坐标。裁剪坐标会被处理至-1.0到1.0的范围内,并判断哪些顶点将会出现在屏幕上。

  • 投影矩阵(Projection)
    将顶点坐标从观察变换到裁剪空间,它指定了一个范围的坐标,比如在每个维度上的-1000到1000。

  • 观察箱(Viewing Box)

由投影矩阵创建,又称为平截头体(Frustum),每个出现在平截头体范围内的坐标都会最终出现在用户的屏幕上。将特定范围内的坐标转化到标准化设备坐标系的过程(而且它很容易被映射到2D观察空间坐标)被称之为投影(Projection),因为使用投影矩阵能将3D坐标投影(Project)到很容易映射到2D的标准化设备坐标系中。

  • 两种形式
    正射投影矩阵(Orthographic Projection Matrix)、透视投影矩阵(Perspective Projection Matrix)。

step4. 裁剪坐标变换为屏幕坐标

使用一个叫做视口变换(Viewport Transform)的过程。视口变换将位于-1.0到1.0范围的坐标变换到由glViewport函数所定义的坐标范围内。

  • 透视除法(Perspective Division)
    将位置向量的x,y,z分量分别除以向量的齐次w分量;透视除法是将4D裁剪空间坐标变换为3D标准化设备坐标的过程。

(这一步会在每一个顶点着色器运行的最后被自动执行)

step5. 最坐标将会送到光栅器,将其转化为片段

被映射到屏幕空间中------使用glViewport中的设定,并被变换成片段

初识OpenGL (-)坐标系统(Coordinate System)相关推荐

  1. OpenGL 坐标系统(Perspective)

    一.坐标系统概述 本文类容见LearnOpenGL CN.直接copy过来留个存档. OpenGL希望每次顶点着色后,我们的可见顶点都为标准化设备坐标(Normalized Device Coordi ...

  2. 【Modern OpenGL】坐标系统 Coordinate Systems

    说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录. 强烈推荐原文,无论是内容还是排版. 原文链接 本文地址: http://blog.csdn.net/aganlengzi/a ...

  3. 14.图像透视——介绍,坐标系统(Coordinate System),建模投影(Modelling Projection)_1

    目录 介绍 坐标系 建模投影 学前基本概念: 投影( projection):光学上是指在光线的照射下,物体的影子投射到一个面上.数学上是指将图形的形状投射到一个面或一条线上.第二种解释:投射在一个面 ...

  4. QT之OpenGL坐标系统

    QT之OpenGL坐标系统 0. 写在前面的话 1. 概述 2. 各个空间简要 2.1 局部空间 2.2 世界空间 2.3 观察空间 2.4 裁剪空间 2.4.1 正射投影 2.4.2 透视投影 3. ...

  5. Geographic coordinate system和projected coordinate system

    Geographic coordinate system和projected coordinate system 经常碰到这两个概念:Geographic coordinate system和proj ...

  6. Geographic coordinate system和projected coordinate system的区别(转)

    http://hi.baidu.com/moonstream/blog/item/987d9a52835be0040df3e36a.htmlGeographic 要明确两个概念:Geographic ...

  7. 笛卡尔坐标系 (Cartesian coordinate system)

    笛卡尔坐标系 (Cartesian coordinate system) 人工智能 - 深度学习 - 知识体系 在数学中,笛卡尔坐标系 (Cartesian coordinate system) 是一 ...

  8. ECEF rectangular coordinate system(ECEF直角坐标系)

    只有当有定位的需要时,才发现当年自己地理学的不太好,经纬度什么的都不是太清晰,麻烦了.今日以ECEF position为契机,参考维基百科以及一些叫不上名字的文章来简单地总结一番. 参考地址: htt ...

  9. OpenGL Texture Coordinate Wrapping纹理坐标包装的实例

    OpenGL Texture Coordinate Wrapping纹理坐标包装 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <verm ...

最新文章

  1. 软件测试:黑盒白盒与动态静态之间有必然联系吗
  2. EL:谁说N素含量高就不固氮了
  3. #圆的周长和面积面向对象_数学实验 | 圆的面积公式推导
  4. 震惊!评审专家将论文拒稿后修改发表
  5. Cocos2D v2.0至v3.x简洁转换指南(一)
  6. python认识if语句_python初认识、基础数据类型以及 if 流程控制
  7. 四川大学计算机学硕分数线,川大计算机考研分数线
  8. 阿里云ECS服务器 Centos7.2 使用 yum 安装 ansible 报错
  9. JavaScript数组中新增元素(2)
  10. 串口通讯(DMA模式)
  11. 2021年4月自考04741计算机网络原理试卷
  12. deepin回收站无法清空
  13. 批量ping检测主机状态
  14. 已解决 vmware 虚拟机安装后没有虚拟网卡问题
  15. 【主题词——蓝色妖姬】
  16. 利用MOG背景分割器实现物体追踪
  17. 【Pytest:Python 单元测试工具学习】
  18. 组合测试术语:Pairwise/All-Pairs、OATS(Orthogonal Array Testing Strategy)
  19. c语言字符集改为多字节,多字节与Unicode
  20. python协程实现一万并发_python进阶:服务端实现并发的八种方式

热门文章

  1. Android TV笔记1
  2. Android 我的 Android Studio 配置文件
  3. HBase Shell启动缓慢及操作耗时长的原因分析与解决
  4. WBS工作分解结构法,如何细分你的工作
  5. 关于“给PHP源代码加密“的代码分析
  6. Python最长回文子串
  7. 网聊:把自己的idea变成现实时别忘了这些点
  8. 数据产品经理那点事儿 二
  9. 2017网易有道校招前端面试
  10. 第二章教程16:贪吃蛇