不懂坐标系,死在第一步…

  • (1)刚开始绘制一个物体,代码设置这个物体的坐标是针对屏幕(屏幕不是计算机的整个屏幕,这里的屏幕是开辟的窗口)的中心建立坐标系而言(说白了就是针对世界坐标系建模,世界坐标系的原点在屏幕中心)

  • (2)然后对物体进行模型变化(平移,旋转等),而设置的代码可以2种理解:假定我们是先进行一次平移、然后进行一次旋转,那么我们设置的平移、旋转代码可以理解:
    ①把物体放在世界坐标系中先平移、再旋转(注意物体变化了,那么物体自身的局部坐标系相对原来局部坐标系也是变化的),也就是说设置的代码仍然是针对世界坐标系(也可以说全局坐标系)。
    ②代码是争对物体的局部坐标系,但是!!!是在局部坐标系中先旋转,在平移。得到的最终效果和上面的(1)是一样的。同时需要注意Opengl中实际上进行模型变换时候就是针对局部坐标系,(当然写代码时候,还是理解成这些代码争对世界坐标系,好理解一点)

  • (3)视点坐标系(又称为眼坐标系、相机坐标系),也就是我们使用的gluLookAt函数(当然这个是视点变换,不是坐标系),我们进行视点变换,也是基于世界坐标系而言,把眼睛放在哪里。得到的效果完全可以理解为与模型变化一样。一个是眼睛不动,物体动。一个是眼睛动,物体不动。唯一的区别就是视点坐标系动的是眼睛,所以物体没有变,所以物体仍然在以前世界坐标系中的老位置,并且物体的局部坐标系针对之前的局部坐标系没有变。

  • (4)投影变换就是从视点(就是前面照相机的位置)出发进行投影,然后投影到一个窗口中,这个窗口称为投影窗口,(没有变换过的视点,默认在这个投影窗口的原点,也就是中心),没有进行视点变换时候(也就是从来没移动眼睛的时候),视点默认是与世界坐标系的中心(原点)重合。所以综上,没有进行视点变换时候,进行投影,投影的窗口的原点,与世界坐标系的原点重合。

  • (5)视口变换,就是在我们的窗口中开辟一个视口,开辟这个视口时候,是针对屏幕(就是我们实验课黑黑的窗口)而言,并且视口坐标系的原点与我们这个黑窗口的左下角重合。把我们投影窗口的内容,放进去。当2个窗口不成比例,但是就会变形!你应该能想象的,上学期的图形学附录也有解释。这个时候解释一下为什么(4)中投影窗口放在世界坐标系中不变型呢,要注意前者是把有限的内容(投影窗口)放在一个窗口,然后把窗口放在一个无线的坐标系中,当然不变型,后者是把有限的内容(投影窗口)放在另外一个有限的窗口,不成比例,当然会变形。

  • 综上,总结:写的变换方面代码(平移、旋转等)理解为争对屏幕(开辟的窗口)的中心而言。一但进行视点坐标系、投影变换、视口变换,脑袋中要时刻想象出这几个坐标系就好。

唧唧歪歪之OpenGL坐标系相关推荐

  1. openGL 坐标系的互相转换

    openGL坐标系包括旋转,平移,缩放被塞在一个矩阵里面. 坐标系之间的转换基础是矩阵的运算. 每个矩阵代表的坐标系,就是是原点坐标系通过旋转.平移,缩放得到的坐标系. 当一个矩阵右乘一个向量或是还有 ...

  2. UE4 OpenGL坐标系

    UE4 & OpenGL坐标系 UE4 使用左手系(DX),OpenGL固定管线使用右手系,可以通过可编程的管线在OpenGL渲染管线中使用和UE4一样的左手系,即修改观察矩阵和投影矩阵.We ...

  3. 搞晕我的openGL坐标系

    OpenGL坐标系 研究任何坐标系(非欧的不清楚),只要把握住以下三点:1.原点:2.坐标轴正方向:3.坐标单位.以下均按照这个思路研究. 1.OpenGL坐标系转换的大致流程 一般使用摄像来做比来描 ...

  4. OpenGL坐标系和像素坐标系

    OpenGL坐标系原点在中心,并且做了归一化处理.就是说xy轴,都是从[-1, 1]之间.而像素坐标系是同样的中心点,右上是正方向,只是没有做归一化处理,是以像素为单位的.那么,归一化的坐标系和像素坐 ...

  5. OpenGL坐标系及坐标转换

    https://blog.csdn.net/shimazhuge/article/details/25135009 OpenGL通过相机模拟.可以实现计算机图形学中最基本的三维变换,即几何变换(模型变 ...

  6. OpenGL坐标系转化之投影坐标系

    坐标系转换 OpenGL中物体建立在各自的局部坐标系[模型坐标系]中,然后经过平移旋转变换到[世界坐标系]中,然后根据视角的位置和方向转换到[视角坐标系]中,然后根据投影关系,是正交投影还是透视投影, ...

  7. OpenGL坐标系及基本变换

    转自:https://blog.csdn.net/dcrmg/article/details/53088463 左手坐标系.右手坐标系.笛卡尔坐标系 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指 ...

  8. OpenGL 坐标系概览

    前言 前面我们总结了OpenGL的基本概念,下面我们着重理解一下OpenGL中的各种坐标系 一.笛卡尔坐标系 标题2D笛卡尔坐标系.png 3D笛卡尔坐标系.png 二.视口(Viewport) 世界 ...

  9. OpenGL坐标系转换

    转换过程 在opengl中,一个坐标的完整转换过程,从结构层.渲染管线.坐标空间三个层级的划分如下: 结构层:顶点-->图元--> 片元-->缓冲(FBO) 图像渲染管线:顶点着色器 ...

最新文章

  1. sonar jacoco 覆盖率为0_Jacoco统计代码覆盖率
  2. 正则表达式全部符号解释
  3. MySQL查询的进阶操作--联合查询
  4. 退出窗口[置顶] 退出Activity的方法
  5. html5游戏制作入门系列教程(四)
  6. 微信小程序条码、二维码生成模块
  7. mapjoin的使用方法以及注意事项
  8. php 限定字符长度,php-限制字符串长度
  9. Matlab 保存TXT文件 打开乱码 (解决)
  10. Don't Starve:饥荒
  11. 旧电脑升级Win11
  12. eggjs mysql_阿里开源eggjs,eggjs+ejs+mysql 初始化项目,简单记录
  13. 高博视觉SLAM十四讲--罗德里格斯公式推导
  14. 群体机器人kilobots研究文章推荐(群体智能)
  15. 官方新动作!老子云3D开发SDK又更新:新增3D测量,路径动画
  16. 深入理解http协议原理
  17. kindle 屏保_送你一台免费Kindle,年度羊毛不要错过
  18. 三款超好用手机epub阅读器
  19. JavaScript 控制台(console)调试技巧
  20. 知识图谱构建3——使用D2RQ将mysql数据转换成RDF数据

热门文章

  1. 【mac】Navicat premium12.1.19激活
  2. jenkins html编辑,Jenkins - HTML Publisher插件编译失败,报告目录不存在
  3. 用PyQt5设计汽车仪表盘——三色环表盘(一)(坐标转换,QPainter画环,画多边形)
  4. cesium 火星 百度等地图纠偏
  5. “星河杯”隐私计算大赛-赛题Baseline来啦
  6. Firefox --- 火狐浏览器下载
  7. 环信直播php怎么生成推流地址,使用Nginx实现简单的RTMP推流直播笔记
  8. MySQL第三次作业-----单表查询和多表查询
  9. linux制作chroot环境,/chroot环境搭建 - 定制的小型文件系统
  10. 制定一个长远的目标,做好职业规划