美文网首页
理解坐标系

理解坐标系

作者: v_d0f2 | 来源:发表于2018-10-06 15:03 被阅读0次

坐标系作用----描述空间中确切的一个点。

构建三维坐标系后,空间某点可用(x,y,z)表示


流水线中坐标变换

WebGL里面的6大坐标系(同OpenGL):

1. Object or model coordinates(物体或模型坐标系)

2. World coordinates(世界坐标系)

3. Eye (or Camera) coordinates(眼(或相机)坐标系)

4. Clip coordinates(裁剪坐标系)

5. Normalized device coordinates(标准设备坐标系)

6. Window (or screen) coordinates(屏幕坐标系)

我们要在屏幕上看到一个物体一般要经过一下几个步骤:物体的坐标从object coordainates到world coordinates再到camera coordinate的变换,在OPENGL中统一称为model-view转换,眼坐标通过乘以GL_PROJECTION变成了裁剪坐标,再除以w,即透视除法,变到NDC,NDC坐标通过平移和缩放来适应渲染的屏幕,屏幕坐标最终传递给绘制流水线中的光栅化处理部分来变成片元。

模型文件中、mesh(unity3d)中顶点数据(vertexData)-------------------物体坐标系

unity3d中 位于世界中某transform 的localposition              ------------------世界坐标系

演算变换过程:

vertexpos(物体vertex某个顶点)                                         ----------------物体坐标系

worldpos=vertexpos*modelMatrix                                        ----------------世界坐标系

eyepos=vertexpos*modelMatrix*viewMatrix                        ----------------相机坐标系

clippos=vertexpos*modelMatrix*viewMatrix*projectmatrix   ------------------裁剪坐标系


坐标系常识

1. unity世界坐标系为左手坐标系。

2. 说opengl是右手坐标系是因为很多opengl程序使用右手坐标系,opengl/webgl在归一化空间是左手坐标系(见webgl 编程指南439页)

3. unity3d 屏幕坐标系 以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height)。

4. unity3d 视口坐标系 以屏幕的左下角为(0,0)点,右上角为(1,1)。

5. uv坐标系,webgl 左上为屏幕原点,unity左下为屏幕原点

unity3d uv坐标系

坐标系计算相关

1.  unity3d中transform localrotation和localscale都是相对物体本身、localpositon是物体相对于父物体的概念。于是 localpositon*parent.worldmatrix=worldpostion;当setworldpsotion 数学演算的时候,使用的是parent的而不是自己的worldmatrix;

2.  分解worldmatrix:

     pos1 =p.localmat * pos ;                                            --------------------物体p上某点pos在父物体p1坐标系中的坐标系(p.parent=p1)

     pos2 = p1.localmat * p.localmat * pos                           --------------------物体p上某点pos在父物体p2坐标系中的坐标系(p1.parent=p2)

     pos3 = p2.localmat * p1.localmat * p.localmat * pos       --------------------物体p上某点pos在父物体p3坐标系中的坐标系(p2.parent=p3)

.    ................................  

    物体p在世界坐标系中的位置:

    p.worldpos=pn.localmat*............* p3.localmat * p2.localmat * p1.localmat * p.localpos;

3.  物体p的worldrot计算过程:

     p.worldrot =pn.localrot*.............* p3.localrot * p2.localrot * p1.localrot * p.localrot;


坐标系思考

1.矩阵是怎么能够达到变换顶点的?

2.w分量存在的意义?

3.左右手坐标系有什么差别、对数学库或其他有什么影响?

相关文章

  • 潜知识-10.概念篇-010:理解直角坐标系的本质

    目录 〇、前言 一、数学中坐标系的特征1、坐标系例子2、坐标系的定义3、理解生活中的坐标系 二、深入理解坐标系的作...

  • 关于坐标系map、odom、base_link

    个人理解,欢迎指正 map:地图坐标系,为固定坐标系,理论上应与odom坐标系重合;odom:里程计坐标系;bas...

  • View 体系及自定义View

    1.理解View的坐标体系 Android中有两种坐标系,分别为Android坐标系和视图坐标系。 在Androi...

  • 游戏数学

    坐标系 右手坐标系:3d max 左手坐标系:Unity、Unreal 参考链接: 理解Unity3D中的四种坐标...

  • CoreText的认识(一)

    整理下最近关于学习CoreText的认识和理解 1.关于坐标系 CoreText坐标系和UIKit坐标系是不一样的...

  • 理解坐标系

    坐标系作用----描述空间中确切的一个点。 构建三维坐标系后,空间某点可用(x,y,z)表示 流水线中坐标变换 W...

  • ROS-TF相关知识

    frame可以理解为一个坐标系

  • frame与bounds的关系

    frame与bounds是我们UI开发中最常用到的,只知道frame使用父类坐标系bounds使用本身坐标系,理解...

  • OpenGL坐标系理解

    1.在OenGL中有5种坐标系 局部坐标系(物体的坐标系) 世界坐标系(-1 ~ 1之间) 观察空间 裁剪空间 屏...

  • OpenGL 坐标系理解

    本篇记录一下对OpenGL中坐标系的理解 抛出问题 我们平时玩过的3D游戏,一些人物模型、物体模型等都是以3D的效...

网友评论

      本文标题:理解坐标系

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