zoukankan      html  css  js  c++  java
  • Flash3D学习计划(二)——理解世界,取景,投影变换,并理解投影坐标系

    各种坐标系都是有用的,因为某些信息只能在特定场景中才有意义。

    一、 世界坐标系

    世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。这就意味着,能够用世界坐标系描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。

    世界坐标系也被广泛的称作为全局坐标系或者宇宙坐标系。

    二、 物体坐标系

    物体坐标系是和特定的物体相关联的坐标系。每个物体都有它们独立的坐标系。当物体移动或者改变方向的时候,和该物体相关联的坐标系将会随之移动或改变方向。

    在某些情况下,物体坐标系也被称作模型坐标系。因为模型顶点的坐标都是在模型坐标系中描述的。有时候它也称作身体坐标系。物体坐标系也是一种局部坐标系。

    三、 摄像机坐标系

    摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系处于3D空间中而屏幕坐标系在2D平面里。摄像机坐标系也是一种特殊的物体坐标系。

    摄像机朝向的约定(对于初学者很重要):左手坐标系中,常约定摄像机朝向+z,而+x和+y指向右和上方向(透视投影情况下)。这是非常直观的,如图15.5所示。右手坐标则指定-z为摄像机朝向。

    摄像机坐标系(eye space:所谓eye space,即以camera(视点或相机)为原点,由视线方向、视角和远近平面,共同组成一个梯形体的三维空间,称之为viewing frustum(视锥),如下图所示,近平面,是梯形体较小的矩形面,作为投影平面,远平面是梯形体较大的矩形,在这个梯形体中的所有顶点数据是可见的,而超出这个梯形体之外的场景数据,会被视点去除(Frustum Culling,也称之为视锥裁剪)。(摘自GPU Programming and Cg language Primer)

    image

    计算ModelViewMatrix(模型坐标转换为眼坐标空间)

    在GPU管线(pipeline)中, ModelMatrix将模型坐标空间的坐标转换为世界坐标空间,再通过ViewMatrix 转换为眼坐标空间。转换公式为:ModelViewMatrix = ViewMatrix * ModelMatrix

    四、 惯性坐标系

    惯性坐标系的原点和物体坐标系的原点重合,但惯性坐标系的轴平行于世界坐标系的轴。

    惯性坐标系是用于简化从物体坐标系到世界坐标系这一转换过程的中间坐标系。因为从物体坐标系转换到惯性坐标系只需旋转,从惯性坐标系转换到世界坐标系只需要平移。

     

  • 相关阅读:
    困扰多年的eclipse项目编码问题!
    什么是专注?什么是执行力?
    关于图表的理解
    去重与替换
    pandas 文本操作
    pandas 数值计算
    DatetimeIndex 时间序列
    Datatime 时间模块
    Numpy 常用方法
    Python迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3156262.html
Copyright © 2011-2022 走看看